[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Acc_asmb.h b/mcu/interface/protocol/as_c2k/1xrtt/Acc_asmb.h
new file mode 100644
index 0000000..10881f7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Acc_asmb.h
@@ -0,0 +1,232 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     acc_asmb.h  - Queue Access Message
+ *
+ * Purpose:    Header file containing definitions to support the queuing
+ *             of Access Channel messages.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *
+ *       $Log: Acc_asmb.h $
+ *
+ *       08 08 2019 tina.ma
+ *       [MOLY00427810] [VMOLY][CODE SYNC][USIR] Sync USIR  patches to 97
+ *       	
+ *       	USIR
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.3  2004/04/06 14:01:59  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:08:36  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:25  fpeng
+ *       Initial revision
+ *       Revision 1.7  2002/06/06 13:03:49  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.6  2001/10/29 09:24:12  mclee
+ *       Modified code to enforce kal_bool to strictly enum type KAL_TRUE or KAL_FALSE
+ *       Revision 1.5  2001/08/29 15:26:19  akayvan
+ *       Added void accessAttempt(ChannelTypeT ChanType) to fix build
+ *       warning.
+ *       Revision 1.4  2001/07/18 14:59:18  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.3  2001/02/14 10:38:25  hans
+ *       Missing function prototype declaration added
+ *       Revision 1.2  2001/01/29 18:10:55  hans
+ *       New architecture with SRBP and LAC functionality moved to it's own module, srbp_access.c and
+ *       lac_acc_asmb.c respectively.
+ *       Revision 1.1  2001/01/17 18:57:59Z  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/12/05 17:44:14  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.1  2000/10/24 14:10:59  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:05:03Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes
+ *       Revision 1.11  2000/04/05 19:46:50  gfrye
+ *       Moved Request Mode defined values to engine.h
+ *
+ *       Revision 1.10  1999/07/16 21:51:59  gfrye
+ *       Added "void" to function to eliminate warning.
+ *
+ *       Revision 1.9  1999/06/24 00:04:07  ddoucett
+ *       added function cpIsAckRequired() which is needed in
+ *       cpMessageTransmissionState() in eng_accs.c
+ *
+ *       Revision 1.8  1999/01/05 00:28:54  mhayduk
+ *       Updated for new API release.
+ *
+ *       Revision 1.7  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.6  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/08  19:26:45  mhayduk
+ * Changed all assembleAccess... prototypes to assembleSave...
+ *
+ * Revision 1.3  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.2  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _Q_ACCMSG_H_
+
+  #define _Q_ACCMSG_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "ach_msg.h"
+#include "eng_accs.h"
+#include "engine.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+  /* Preferred MSID types - Table 7.7.2.3.2.13-1 */
+  #define CP_PREF_MSID_TYPE_IMSI_S_ESN    0
+  #define CP_PREF_MSID_TYPE_IMSI          2
+  #define CP_PREF_MSID_TYPE_IMSI_ESN      3
+  #define CP_PREF_MSID_TYPE_TMSI_IMSI     2
+  #define CP_PREF_MSID_TYPE_TMSI_IMSI_ESN 3
+
+  /* Address types - Table 6.7.1.3.1.1-1 */
+  #define CP_IMSI_S_ESN_ADDR_TYPE    0
+  #define CP_ESN_ADDR_TYPE           1
+  #define CP_IMSI_ADDR_TYPE          2
+  #define CP_IMSI_ESN_ADDR_TYPE      3
+  #define CP_TMSI_ADDR_TYPE          5
+
+  /* Number Types  - Table 6.7.1.3.2.4-2 */
+  #define CP_NUM_TYPE_UNKNOWN            0
+  #define CP_NUM_TYPE_INTERNATIONAL      1
+  #define CP_NUM_TYPE_NATIONAL           2
+  #define CP_NUM_TYPE_NETWORK            3
+  #define CP_NUM_TYPE_SUBSCRIBER         4
+  #define CP_NUM_TYPE_ABBREVIATED        6
+
+typedef enum
+{
+    ACCESS_ATTEMPT,
+    ACCESS_RESUME,
+    TA_TIMEOUT
+} AttemptTypeT;
+
+
+typedef struct
+{
+    kal_uint16  sizeInBits;                         /* size of L3 PDU in bits           */
+    kal_uint8   bufferPacked[MAX_ACCESS_MSG_SIZE];  /* buffer containing L3 SDU packed  */
+    kal_uint8   msgType;
+    kal_bool    request;                            /* Is this a request or a response  */
+    AttemptTypeT attemptType;                   /* ACCESS_ATTEMPT,TA_TIMEOUT        */
+    ChannelTypeT channelType;                   /* ACH or EACH                      */
+    kal_bool    validAck;
+} AccessProbeInfoT;
+
+typedef struct
+{
+    kal_uint8   GrpBitmapLength;
+    kal_uint16  GrpBitmap;
+} SoGrpBitmapT;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+  void cpSetPrefMSIDType(kal_uint8 type);
+  void assembleSaveResponseMessage(void);
+  void assembleSaveRegMessage(kal_uint8 reg_type,kal_bool validAck);
+  void assembleSaveOriginationMessage(OrigParms *origParms);
+  void assembleSaveDataBurstMessage(DataBurstData* dataBurstData, kal_bool validAck);
+  void assembleSaveOrderMessage(kal_uint8 order,kal_uint8 ordq,kal_bool validAck);
+  void assembleSaveRejectOrderMessage(kal_uint8 ordq,MSRejectOrderData *rejectData,
+                                kal_bool validAck);
+  void assembleSaveBSChallOrder(kal_uint32 randBS,kal_bool validAck);
+  void assembleSaveAuthChallMessage(kal_bool validAck,kal_uint32 randu);
+  void assembleSaveStatusRespMessage(kal_bool validAck,StatusReqData *ReqData,
+                                kal_uint8 numRecords);
+  void assembleSaveTMSIAssignMessage(kal_bool validAck);
+  void assembleAccessMessage(void);
+  void resetAccessMsgSeq(void);
+  kal_uint8 getAccessMsgSeq(void);
+  kal_bool cpIsAckRequired(void);
+  kal_uint32 cpGet_savedRandu(void);
+  void accessAttempt(ChannelTypeT ChanType);
+  ChannelTypeT getAccessCh( void );
+
+  kal_uint8 getSavedMessageType(void);
+#ifdef MTK_DEV_C2K_IRAT
+  kal_uint8 getSavedOrder(void);
+  kal_uint8 getSavedRegType(void);
+#endif
+  void cpSetUseSyncId(const kal_bool useSyncId);
+  void accessTaTimeout(void);
+#endif  /* _Q_ACCMSG_H_ */
+
+kal_int16 getNumDigitsAvailInOrig(void);
+
+#ifdef __SENSITIVE_DATA_MOSAIC__
+void maskL3SensitivePartAch(kal_uint8* buffP, kal_uint16 index, kal_uint8 msgtype);
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Cca_api.h b/mcu/interface/protocol/as_c2k/1xrtt/Cca_api.h
new file mode 100644
index 0000000..41dee8a
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Cca_api.h
@@ -0,0 +1,167 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     cca.h
+ *
+ * Purpose:    Header file for Common Cryptographic Algorithms.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ * $Workfile$
+ * $Revision: 1.2 $
+ *  $Modtime$
+ *   $Author: fpeng $
+ *
+ *      $Log: Cca_api.h $
+ *
+ *      08 19 2019 jiayong.zhang
+ *      [MOLY00423329] sync code from UMOLYE to VMOLY
+ *      	
+ *      	.
+ *
+ *      07 06 2017 sue.zhong
+ *      [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *      Correct copyright file header
+ *      Revision 1.2  2004/03/25 12:08:40  fpeng
+ *      Updated from 6.0 CP 2.5.0
+ *      Revision 1.1  2003/05/12 15:38:31  fpeng
+ *      Initial revision
+ *      Revision 1.3  2002/08/20 11:21:28  mshaver
+ *      Added prototype for ssdGetTempAkey() for builds where
+ *      authentication is disabled using the compile switch
+ *      SYS_OPTION_AUTHENTICATION.
+ *      Revision 1.2  2002/06/06 13:10:57  chinh
+ *      Changed and Added Copyright
+ *      Revision 1.1  2001/01/17 10:58:08  plabarbe
+ *      Initial revision
+ *      Revision 1.1  2000/10/24 14:11:03  fpeng
+ *      Initial revision
+ *      Revision 1.3  2000/08/23 22:05:14Z  RSATTARI
+ *      Isotel release 2.8 plus LSI applicable IS-95B changes
+ *      Revision 1.4  2000/01/26 00:15:57  gfrye
+ *      Added getAuthrOtasp function to facillitate Re-authentication by OTASP.
+ *
+ *      Revision 1.3  2000/01/25 16:29:07  gfrye
+ *      Added randOtapa parameter to getAuthrOTAPA function.
+ *
+ *      Revision 1.2  2000/01/21 22:03:39  gfrye
+ *      Made Shared Secret Data private to auth.c and removed it from all the access
+ *      routines to authentication.
+ *
+ *      Revision 1.1  1998/03/30 23:26:03  mhayduk
+ *      Initial revision
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+#ifndef _CCA_H_
+
+ #define _CCA_H_
+
+  /* A_Key Verification */
+
+  kal_bool verifyAkey(kal_uint8 *digits, kal_uint8 ndigits, kal_uint32 *A_Key, kal_uint32 esn);
+
+
+  /* Shared Secret Data Update */
+
+  kal_uint32 ssdUpdateRequest( kal_uint8 *randssd, kal_uint32 esn, kal_uint32 imsi_s1);
+
+  kal_bool  confirmSSDUpdateRequest(kal_uint32 authbs);
+
+
+
+  /* Authentication */
+
+  kal_uint32 getAuthrRegistration( kal_uint32 esn, kal_uint32 imsi_s1);
+
+  kal_uint32 getAuthrTermination( kal_uint32 esn, kal_uint32 imsi_s1);
+
+  kal_uint32 getAuthrOrigination( kal_uint32 esn, kal_uint32 imsi_s1, kal_uint8 *digits);
+
+  kal_uint32 getAuthrDataBurst( kal_uint32 esn, kal_uint32 imsi_s1, kal_uint8 *digits);
+
+  kal_uint32 getAuthrTMSIAssignment( kal_uint32 esn, kal_uint32 imsi_s1);
+  
+  kal_uint32 getAuthrOtasp(kal_uint32 rand, kal_uint32 esn, kal_uint32 imsi_s1, kal_bool orig, 
+                       kal_uint8 *digs, kal_uint8 *authData);
+
+  kal_uint32 getAuthrOTAPA(kal_uint32 randOtapa, kal_uint32 esn, kal_uint32 imsi_s1);
+
+  kal_uint32 getAuthu( kal_uint32 randu, kal_uint16 imsi_s2, kal_uint32 esn, kal_uint32 imsi_s1);
+
+  void  setRANDs(kal_uint32 Rand);
+
+  kal_uint8 getRANDC(void);
+
+
+  /* Signaling Message Encryption */
+  void encryptDecryptCMEA(short byte_count, kal_uint8 *msg_buf);
+
+
+  /* Cellular Data Encryption */
+  void encryptDecryptORYX(kal_uint32 hook, short byte_count, kal_uint8 *msg_buf);
+
+  /* Voice Privacy */
+
+  kal_uint8 *getVPM40(void);
+
+  void InitializeAuth(void);
+kal_bool  calcAuthrUim(void);
+void SetAuthrUim(kal_uint32 result);
+void SetAuthrRegUim(kal_uint32 result);
+
+#ifndef SYS_OPTION_AUTHENTICATION
+  kal_bool ssdGetTempAkey(void);
+#endif
+
+void ResetAuthFailCount(void);
+void IncAuthFailCount(void);
+kal_uint8 GetAuthFailCount(void);
+
+#endif /* _CCA_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Ds_Signaling.h b/mcu/interface/protocol/as_c2k/1xrtt/Ds_Signaling.h
new file mode 100644
index 0000000..4d88d93
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Ds_Signaling.h
@@ -0,0 +1,422 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1998-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifdef IS2000_REV_0
+/*****************************************************************************
+* FILE NAME   : Ds_Signaling.h
+*
+* DESCRIPTION : Header file for Ds_Signaling.c
+*
+* HISTORY     : See Log at end of file
+*
+*
+*               All rights reserved. LSI Confidential information.
+****************************************************************************
+****************************************************************************/
+
+#ifndef _DS_SIGNALING_H_
+
+#define _DS_SIGNALING_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pch_msg.h"
+#include "Msg_defn.h"
+#include "status.h"
+#include "sysapi.h"
+#include "l1dapi.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+#define CP_MAX_REV_SCH_ID       2
+#define CP_MAX_REV_SCH_RATE     15
+
+#define CP_MAX_FOR_SCH_ID       2
+#define CP_MAX_FOR_SCCL_INDEX   15
+#define CP_MAX_NUM_SUP_SHO      CP_MAX_SUP_SHO
+
+typedef enum
+{
+    DS_SIGNALING_CT_PILOT,
+    DS_SIGNALING_CT_CQICH,
+    DS_SIGNALING_FFCH,
+    DS_SIGNALING_RFCH,
+    DS_SIGNALING_FDCCH,
+    DS_SIGNALING_RDCCH,
+    DS_SIGNALING_F_SCH_0,
+    DS_SIGNALING_R_SCH_0,
+    DS_SIGNALING_F_SCH_1,
+    DS_SIGNALING_R_SCH_1,
+    DS_SIGNALING_FPDCH,
+    DS_SIGNALING_MAX_CH_TYPES
+
+} Ds_ChanType;
+
+typedef enum
+{
+    CP_CHAN_TYPE_INVALID    = 0,
+	/*
+    CP_CHAN_TYPE_FCH        = 0x1,
+    CP_CHAN_TYPE_DCCH       = 0x2,
+    CP_CHAN_TYPE_CT_PILOT   = 0x4,
+    CP_CHAN_TYPE_R_SCH_0    = 0x8
+	*/
+
+    CP_CHAN_TYPE_CT_PILOT   = 0x1,
+    CP_CHAN_TYPE_CT_CQICH	= 0x2,
+    CP_CHAN_TYPE_F_FCH		= 0x4,
+    CP_CHAN_TYPE_R_FCH		= 0x8,
+    CP_CHAN_TYPE_F_DCCH		= 0x10,
+    CP_CHAN_TYPE_R_DCCH		= 0x20,
+    CP_CHAN_TYPE_R_SCH_0    = 0x40,
+    CP_CHAN_TYPE_F_PDCH		= 0x80		/* this also includes R-CQICH, R-ACKCH */
+
+} Ds_ChanBitmapType;
+
+
+typedef enum
+{
+    DS_SCH_0 = 0,
+    DS_SCH_1 = 1
+} Ds_SchIdType;
+
+typedef enum
+{
+    DS_HSPD_ACTIVE_STATE = 0,
+    DS_HSPD_CONTROL_HOLD_STATE = 1,
+    DS_HSPD_PDCH_CONTROL_HOLD_STATE = 2
+} Ds_HspdActiveControlHoldType;
+
+
+typedef enum
+{
+    DS_CONTINUOUS_PILOT = 0,
+    DS_GATED_PILOT,
+    DS_PDCH_GATED_PILOT_CQICH
+} Ds_PilotType;
+
+typedef enum
+{
+    CP_SCH_RATE_INVALID,
+    CP_SCH_RATE_96,
+    CP_SCH_RATE_144,
+    CP_SCH_RATE_192,
+    CP_SCH_RATE_288,
+    CP_SCH_RATE_384,
+    CP_SCH_RATE_576,
+    CP_SCH_RATE_768,
+    CP_SCH_RATE_1152,
+    CP_SCH_RATE_1536,
+    CP_SCH_RATE_2304,
+    CP_SCH_RATE_2592,
+    CP_SCH_RATE_3072,
+    CP_SCH_RATE_4608,
+    CP_SCH_RATE_5184,
+    CP_SCH_RATE_6144,
+    CP_SCH_RATE_10368
+} Ds_SchRateTypes;
+
+typedef struct
+{
+    kal_uint8           srId;
+    SchRateIndex    prefRate;
+    kal_uint16          duration;
+} Ds_SchReqRec;
+
+typedef struct
+{
+    kal_uint8   revWalshId[ CP_MAX_REV_SCH_ID ][ CP_MAX_REV_SCH_RATE ];
+} Ds_RevCfgRec;
+
+typedef struct
+{
+    kal_bool            revSchActive[ CP_MAX_REV_SCH_ID ];
+    kal_bool            revSchStartTimeIncl[ CP_MAX_REV_SCH_ID ];
+    kal_uint8           revSchStartTime[ CP_MAX_REV_SCH_ID ];
+    kal_uint8           revSchDuration[ CP_MAX_REV_SCH_ID ];
+    SchRateIndex    revSchRate[ CP_MAX_REV_SCH_ID ];
+} Ds_RevSch;
+
+typedef struct
+{
+    kal_bool            forSchActive[ CP_MAX_FOR_SCH_ID ];
+    kal_bool            forSchStartTimeIncl[ CP_MAX_FOR_SCH_ID ];
+    kal_uint8           forSchStartTime[ CP_MAX_FOR_SCH_ID ];
+    kal_uint8           forSchDuration[ CP_MAX_FOR_SCH_ID ];
+    kal_uint8           scclIndex[ CP_MAX_FOR_SCH_ID ];
+} Ds_ForSch;
+
+typedef struct
+{
+    SchRateIndex    forSchRate[ CP_MAX_FOR_SCH_ID ][ CP_MAX_FOR_SCCL_INDEX ];
+    kal_uint8           numSupSho[ CP_MAX_FOR_SCH_ID ][ CP_MAX_FOR_SCCL_INDEX ];
+} Ds_ForSchCodeList;
+
+typedef struct
+{
+    kal_uint16                      pilotPn[ CP_MAX_FOR_SCH_ID ]
+                                       [ CP_MAX_FOR_SCCL_INDEX ]
+                                       [ CP_MAX_NUM_SUP_SHO ];
+    kal_uint8                       qofMaskIdSch[ CP_MAX_FOR_SCH_ID ]
+                                            [ CP_MAX_FOR_SCCL_INDEX ]
+                                            [ CP_MAX_NUM_SUP_SHO ];
+    kal_uint16                      forSchCcIndex[ CP_MAX_FOR_SCH_ID ]
+                                             [ CP_MAX_FOR_SCCL_INDEX ]
+                                             [ CP_MAX_NUM_SUP_SHO ];
+    kal_bool                        addPilotRecIncl[ CP_MAX_FOR_SCH_ID ]
+                                               [ CP_MAX_FOR_SCCL_INDEX ]
+                                               [ CP_MAX_NUM_SUP_SHO ];
+    PilotRecType                pilotRecType[ CP_MAX_FOR_SCH_ID ]
+                                            [ CP_MAX_FOR_SCCL_INDEX ]
+                                            [ CP_MAX_NUM_SUP_SHO ];
+    ActivePilotRec              pilotRec[ CP_MAX_FOR_SCH_ID ]
+                                        [ CP_MAX_FOR_SCCL_INDEX ]
+                                        [ CP_MAX_NUM_SUP_SHO ];
+} Ds_ForSchSet;
+
+typedef struct
+{
+    kal_uint8       schId[ CP_MAX_SUP ];
+    kal_uint8       fpcSchFer[ CP_MAX_SUP ];
+    kal_int16       fpcSchInitSetpt[ CP_MAX_SUP ];
+    kal_uint8       fpcSchMinSetpt[ CP_MAX_SUP ];
+    kal_uint8       fpcSchMaxSetpt[ CP_MAX_SUP ];
+    kal_uint8       fpcSetptThreshSch[ CP_MAX_SUP ];
+    kal_uint8       numSup;
+} Ds_FpcSch;
+
+typedef struct
+{
+    kal_uint8       schId[ CP_MAX_RPC_NUM_SUP ];
+    kal_int8        rlgainSchPilot[ CP_MAX_RPC_NUM_SUP ];
+} Ds_RpcSup;
+
+/* PDCH config */
+typedef struct
+{
+   kal_uint16  PilotPn;
+   kal_uint8   WalshTableId;
+   kal_uint8   NumPdcch;
+   kal_uint8   ForPdcchWalsh[CP_MAX_PDCCH_CH];
+} Ds_PdchPilot; 
+
+typedef struct
+{
+   kal_uint8   		 NumPdchSet;
+   Ds_PdchPilot  PdchSet[CP_MAX_NUM_PILOTS];
+} Ds_PdchSet;
+
+typedef enum 
+{
+   ASSIGN,/* newly assigned PDCH */
+   HANDOFF /* PDCH soft, hard handoff */
+} Ds_PdchHandoffTypes;
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+TCGatingRate DsGetRevPilotGatingRate( void );
+void DsSetRevPilotGatingRate( const TCGatingRate );
+kal_bool DsGetRevPilotGatingUseRate( void );
+
+/* PDCH params */
+void DsClearPDCHParams( void );
+L1dPdchParamsMsgT* 	 DsGetPDCHParams( void );
+
+void  DsSetPDCHParams
+(
+   kal_uint8 HandoffType,
+   kal_bool  PilotGatingUseRate,
+   kal_uint8 PilotGatingRate,
+   kal_uint8 ChInd,
+   kal_bool  ForPdchRcIncl,
+   kal_uint8 ForPdchRc,
+   kal_uint8 FullCIFeedbackInd,
+   kal_uint8 RevCqichFrameOffset,
+   kal_uint8 RevCqichReps,
+   kal_uint8 RevAckchReps,
+   kal_bool  SwitchingParamsIncl,
+   kal_uint8 NumSoftSwitchingFrames,
+   kal_uint8 NumSofterSwitchingFrames,   
+   kal_uint8 NumSoftSwitchingFramesChm,
+   kal_uint8 NumSofterSwitchingFramesChm,   
+   kal_uint8 NumSoftSwitchingSlots,
+   kal_uint8 NumSofterSwitchingSlots,   
+   kal_uint8 NumSoftSwitchingSlotsChm,
+   kal_uint8 NumSofterSwitchingSlotsChm,   
+   kal_uint8 PdchSoftSwitchingDelay,   
+   kal_uint8 PdchSofterSwitchingDelay   
+);
+
+void DsClearPDCHSetParams( void );
+
+kal_bool DsGetPerPilotPDCHConfigParams( kal_uint16 pilotpn, 
+									kal_uint8  *walshTableId,
+   									kal_uint8  *numPdcch, 
+   									kal_uint8  forPdcchWalsh[] );
+
+void DsSetPerPilotPDCHConfigParams( const kal_uint16 pilotpn, 
+									const kal_uint8  walshTableId,
+   									const kal_uint8  numPdcch, 
+   									const kal_uint8  forPdcchWalsh[] );
+
+kal_bool DsGetFPdchSupported( void );
+void DsSetFPdchSupported( const kal_bool forPdchSupported );
+
+kal_bool DsIsPdchInUse( FcschChIndType chInd );
+
+/* end of PDCH Params */
+
+
+void DsMsFschIndicator( const kal_bool status );
+
+void DsReset( void );
+
+kal_uint8 DsIncrementAndGetScrmSeqNum( void );
+
+void DsSigRsrReq
+(
+    const Ds_ChanBitmapType,
+    const kal_uint8 DurationUnit,
+    const kal_uint8 NumReq,
+    const Ds_SchReqRec*
+);
+
+#ifdef FIELD_TEST_DATA
+typedef enum
+{
+  SCH_INACTIVE,
+  SCH_ACTIVE,
+  SCH_MAX_ST
+} SchStateT;
+#endif
+
+void DsSigRsrRel( const Ds_ChanBitmapType, const kal_bool isTAddAbort);
+
+CPState DsTCESCAM( const ESCAMData*, const CPState );
+CPState DsTCRAM( const RAMData* , const CPState );
+CPState DsTCERM( const ERMData* , const CPState );
+
+void DsRATCHGM( const RATCHGMData*, const CPState);
+
+void DsUHDMUpdateSch
+(
+    const HDMData           *pHdmData,
+    const PHDMData          *pPhdmData,
+          kal_bool              HardHandoff
+);
+
+void DsRschStarted( void );
+void DsRschRelInd( const kal_uint16 remainDuration );
+void DsMsAbortsFsch( void );
+void DsMsAbortsRsch( void );
+void DsSetIgnoreEscam( const kal_bool ignoreEscam );
+void DsSetIgnoreRam( const kal_bool ignoreRam );
+void dsUpdateFPC(FTCMessageType msgType);
+void dsSchRevPowerControl( SchRateIndex schrate, kal_int16* pilotRefLevel, kal_int16* rschPower);
+SchRateIndex dsGetRevSchRate(void);
+
+kal_bool ProcessTcRetryOrder
+(
+    const kal_uint8                 ordq,
+    const RetryDelayType        retryType,
+    const kal_uint8                 retryDelay
+);
+
+#endif
+
+/*****************************************************************************
+* $Log: Ds_Signaling.h $
+* Revision 1.6  2005/08/02 16:26:16  wfu
+* - Add prototypes for dsSchRevPowerControl() and dsGetRevSchRate().
+* Revision 1.5  2005/03/18 11:40:02  hans
+* Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21. 
+* Revision 1.4  2004/05/04 17:43:59  sulinlow
+* Revision 1.3.1.2  2004/05/03 11:08:45  sulinlow
+* Revision 1.3.1.1  2004/04/23 10:49:47  sulinlow
+* Duplicate revision
+* Revision 1.3  2004/04/23 10:49:47  asharma
+* CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+* Revision 1.2.1.2  2004/04/14 15:19:13  asharma
+* Revision 1.2  2004/03/25 12:08:43  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.3  2004/02/10 12:49:46  bcolford
+* Merged CBP4.0 Release 8.05.0 changes.
+* Revision 1.12  2003/12/17 09:58:11  mclee
+* Add msgType in dsUpdateFPC() prototype
+* Revision 1.11  2003/11/20 14:36:24  mclee
+* Add numSup to Ds_FpcSch struct
+* Revision 1.10  2003/05/21 17:09:15  byang
+* CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+* Revision 1.9  2003/04/25 14:11:05  byang
+* CR#2171: Add function prototype declaration for 
+* DsMsFschIndicator().
+* Revision 1.8  2003/02/19 16:42:38  byang
+* CR #1752: Added function prototype declaration for
+* ProcessTcRetryOrder().
+* Revision 1.7  2002/10/17 10:46:23  byang
+* Add function prototype for  DsMsAbortsFsch().
+* Revision 1.6  2002/08/14 17:17:06  byang
+* Add function prototype declaration for DsSetIgnoreEscam() and 
+* DsSetIgnoreRam().
+* Revision 1.5.1.2  2002/07/31 14:33:45  byang
+* DCCH Only plus miscellaneous.
+* Revision 1.5.1.1  2002/06/06 13:11:38  byang
+* Duplicate revision
+* Revision 1.5  2002/06/06 13:11:38  chinh
+* Changed and Added Copyright
+* Revision 1.4  2002/05/07 16:46:52  byang
+* Changed Ds_SchRate to Ds_SchRateTypes.
+* Revision 1.3  2002/01/28 11:35:43  byang
+* Removed unnecessary include files.
+* Revision 1.2  2001/11/13 17:16:00  byang
+* Initial version of Data Service Signaling header file.
+* Revision 1.1  2001/11/09 11:13:59  byang
+* Initial revision
+*****************************************************************************/
+
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/FSM.H b/mcu/interface/protocol/as_c2k/1xrtt/FSM.H
new file mode 100644
index 0000000..bffe40f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/FSM.H
@@ -0,0 +1,342 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       fsm.h
+ * Project:         ISOLIB C Library
+ * Original Author: Dale Ehman
+ * Creation Date:   Aug. 26, 1997
+ *
+ * Description:     Header for Generic FSM C Language implementation.
+ *
+ * Restrictions:    
+ *
+ * Dependencies:    
+ *
+ ****************************************************************************
+ ****************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Log: FSM.H $
+ *
+ * 06 29 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - folder inc
+ *
+ * 05 17 2017 peijun.zheng
+ * [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ * 	
+ * 	C2k code release.
+ * Revision 1.3  2006/01/11 15:15:19  blee
+ * Added new state machine handler
+ * Revision 1.2  2004/03/25 12:08:47  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:44  fpeng
+ * Initial revision
+ * Revision 1.7  2003/05/02 14:35:59  sulinlow
+ * To add RLP BLOB params received from PS
+ * Revision 1.6  2002/06/06 13:12:20  chinh
+ * Changed and Added Copyright
+ * Revision 1.5  2002/05/30 09:31:36  mshaver
+ * The ARM 2.51 tools the compiler supports the alignment options :
+ *  -zap1 which specifies that pointers to structs are assumed to be 
+ *  aligned on at least <struct minimal alignment> boundaries.
+ *  -zat4 which specifies the minimal byte alignment for top-level static
+ *   objects, such as global variables is 4 bytes.
+ * The ADS compiler does not support either of these alignment 
+ * options. The only alignment option it supports is :
+ *  -zas which specifies the minimum byte alignment for structures. This option will not be supported in future versions of the ADS 
+ * tools.
+ * Therefore, to be compatible with both the ARM 2.51 tools and the
+ * ADS tools, the PACKED qualifier was removed from the FSM
+ * Descriptor Structure.
+ * Revision 1.4.1.2  2002/02/11 10:51:02  srodenba
+ * remove PACKED designator to make it work with ADS
+ * --- Added comments ---  mshaver [2002/05/22 16:20:08Z]
+ * For the ARM 2.51 tools the compiler supports the alignment options :
+ * -zap1 which specifies that pointers to structs are assumed to be aligned on at least
+ * <struct minimal alignment> boundaries.
+ * -zat4 which specifies the minimal byte alignment for top-level static objects, such as global
+ * variables is 4 bytes.
+ * The ADS compiler does not support either of these alignment options. The only alignment
+ * option it supports is :
+ * -zas which specifies the minimum byte alignment for structures. This option will not be 
+ * supported in future versions of the ADS tools.
+ * 
+ * Therefore, to be compatible with both the ARM 2.51 tools and the ADS tools, the
+ * PACKED qualifier was removed from the FSM Descriptor Structure.
+ * Revision 1.4.1.1  2002/02/01 11:59:15  srodenba
+ * Duplicate revision
+ * Revision 1.4  2002/02/01 11:59:15  ameya
+ * Moved OTTS related definitions from this file to ottsdefs.h
+ * Revision 1.3  2001/10/19 13:54:49  ameya
+ * Changed all occurences of _packed to PACKED. Added definition of macro PACKED if undefined.
+ * Revision 1.2  2001/06/21 09:42:38  yfang
+ * supported RLP3
+ * Revision 1.1  2001/01/17 10:58:37  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:13  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:07:10Z  hhong
+ * Add #ifndef pair for COND_ST
+ * Revision 1.2  2000/05/12 00:53:51Z  hhong
+ * Make FSM.h available to all data engines across the board from this spot.
+ * Revision 1.20  1999/07/21 21:17:37  msmith
+ * Corrected FSMEXTTRACEINFO for TOKEN tracing
+ *
+ * Revision 1.19  1999/06/26 00:26:03  ddoucett
+ * fixed the FSM_EXTTRACEINFO for case when TRACEON is not defined
+ *
+ * Revision 1.18  1999/06/14 23:06:08  bcassidy
+ * Changed to distinguish between token tracing and string tracing
+ *
+ * Revision 1.17  1999/06/09 23:04:44  msmith
+ * Reduced parm_struct size
+ *
+ * Revision 1.16  1999/06/07 22:50:39  ddoucett
+ * increaced the size of the MAX_PARM_STRUCT to 83
+ *
+ * Revision 1.15  1999/05/13 15:12:57  msmith
+ * Added support for tracing when TRACEON defined
+ *
+ *
+ * Revision 1.13  1998/10/06 17:08:13  bcassidy
+ * 1. Mods for circular queue operation.
+ * 2. Put queue size back to 5.
+ *
+ * Revision 1.12  1998/10/04 01:39:02  pjiang
+ * 1. Bump event Q size.
+ *    [Temporary fix until FSM changed to circular Q operation.]
+ *
+ * Revision 1.11  1998/09/25 20:28:21  bcassidy
+ * 1. Mod setFSMTraceInfo proto.
+ *
+ * Revision 1.10  1998/08/28 14:57:42  bcassidy
+ * 1. Mods for multi-engine tracing system.
+ *
+ * Revision 1.9  1998/07/14 19:24:53  bcassidy
+ * 1. Simplify MakeFSMTable maro.
+ * 2. Add ROM keyword for constant data.
+ *
+ * Revision 1.8  1998/05/15 21:28:08  bcassidy
+ * 1. Modify tracing system to avoid string fields.
+ *
+ * Revision 1.7  1998/03/05  17:50:10  bcassidy
+ * 1. Add compile switch for conditional state support.
+ *
+ * Revision 1.6  1998/03/04  01:13:46  dehman
+ * Adjusted MAX_PARM_STRUCT_SIZE to 15 so that we get word alignment. (For now)
+ *
+ * Revision 1.5  1998/02/07  22:07:53  bcassidy
+ * 1. Remove current_event and busy elements from FSMDescriptor.
+ *    [Efficiency improvement in processEventWithParmStruct.]
+ *
+ * Revision 1.4  1998/02/07  04:03:44  dehman
+ * Fixed structure alignment problem/bug by changing the order
+ * of member declaration in FSMTblEvent.
+ *
+ * Revision 1.3  1998/02/04  01:08:12  bcassidy
+ * 1. Fix const keywords for FSM name, event_name and state_name.
+ *
+ * Revision 1.2  1998/02/03  22:23:47  bcassidy
+ * 1. Add tracing support.
+ *
+ * Revision 1.1  1998/01/31  22:37:35  bcassidy
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef __FSM_H_
+#define __FSM_H_
+
+#include "ottsdefs.h"
+#include "sysdefs.h"
+
+
+
+
+/* Constants */
+/* <TBD: Due to a GNU compiler-bug, the MAX_PARM_STRUCT_SIZE must be set
+         to: ((a multiple of 4) - 1).> */
+#define MAX_PARM_STRUCT_SIZE 39
+
+#define EVENTQ_SIZE           5
+
+#define UNEXPECTED_EVENT_AC  0xFE
+#define NO_EVENT             0xFF
+#define NO_ACTION            0
+
+#ifndef FSM_COND_ST
+#define FSM_COND_ST          1
+#endif
+
+#ifdef FSM_COND_ST
+#define CONDITIONAL_STATE    0x7F
+#define CHANGE_STATE_ALWAYS  KAL_TRUE
+#define ACTION_DRIVES_CHANGE KAL_FALSE
+#endif
+
+/* Define FSM Base Elements */
+typedef kal_uint8 FSMState;
+typedef kal_uint8 FSMEvent;
+typedef kal_uint8 FSMAction; 
+
+/* <TBD: Due to a GNU compiler-bug, 'plist' must be the first entry in this structure.> */
+typedef struct 
+{
+  kal_uint8 plist[ MAX_PARM_STRUCT_SIZE ];
+  FSMEvent  event;
+} FSMTBLEvent;
+
+typedef kal_uint8 ProtocolEngineID;
+
+/* Define FSM Descriptor Structure */
+
+struct FSMDescriptorStruct
+{
+  FSMTBLEvent eventQ[EVENTQ_SIZE]; /* Event Queue        */
+  kal_uint8   put_index;           /* Put Index for Q    */
+  kal_uint8   get_index;           /* Get Index for Q    */
+  kal_uint8   num_in_queue;        /* Current number of entries in the queue */
+
+  FSMState  state;                 /* Current State      */
+
+#ifdef FSM_COND_ST
+  FSMState  conditional_state;     /* Conditional State  */
+  kal_bool  change_flag;           /* If TRUE, always change state */
+#endif
+
+  FSMState  num_state;             /* Number of States   */
+  FSMEvent  num_event;             /* Number of Events   */
+  FSMAction num_action;            /* Number of Actions  */
+
+  FSMState*   state_table;         /* State Table        */
+  kal_uint16  state_size;          /* State Entry Size   */
+  kal_uint16  event_size;          /* Event Entry Size   */
+
+  /* Ptr to Action Handler Function */
+  kal_bool ( *action_handler )( struct FSMDescriptorStruct* fsm, FSMAction action );
+
+  /* Instance Related User Parameters */
+  void*       user_parms;
+
+  kal_uint8   id;
+  ProtocolEngineID engineId;
+  kal_bool    extendedTracing;
+
+#if (ITRACE_TYPE == TOKEN_TRACING)
+  kal_uint8   fsmNameTableId;
+  kal_uint8   stateNameTableId;
+  kal_uint8   eventNameTableId;
+
+#else   /* !TOKEN_TRACING */
+  const kal_char** fsmNameTable;
+  const kal_char** stateNameTable;
+  const kal_char** eventNameTable;
+#endif  /* ITRACE_TYPE */
+};
+
+/* Useful Typedefs */
+typedef struct FSMDescriptorStruct FSMDescriptor;
+typedef FSMDescriptor* FSMPtr;
+typedef kal_bool (*FSMActionFuncPtr) (FSMPtr fsm, FSMAction action);
+
+
+/* Generic FSM Processing Functions */
+void initializeFSM( FSMPtr fsm, FSMState* table,
+                    kal_uint8 num_state, kal_uint8 num_event, kal_uint8 num_action,
+                    FSMState initial_state, FSMActionFuncPtr action_handler, 
+                    void* user_parms );
+
+void processEventWithNoParms( FSMPtr fsm, FSMEvent event );
+void processEventWithParmStruct( FSMPtr fsm, FSMEvent event, void* parm_struct, kal_uint8 size );
+
+#ifdef FSM_COND_ST
+void setConditionalState( FSMPtr fsm, FSMState cond_state );
+void setChangeFlag( FSMPtr fsm, kal_bool change_always );
+#endif
+
+/* Event Parameter Query */
+void* getEventParameters( FSMPtr fsm );
+FSMEvent getCurrentEvent( FSMPtr fsm );
+
+/* FSM Table Generation Macros */
+
+/* The macro MAKEFSMTable creates a FSM table, just provide the name of the
+ * table, the number of states, the number of events and the number of
+ * actions that are to be executed to get to that state.
+ */
+
+/*
+ * Example of make fsm table macro
+ * Intialize table
+ * MAKEFSMTable(callFSM,2,3,1) = {{1,b},{2,c},{3,d},{4,e},{5,f},{0,a}};
+ *    where 0-5 represent the different states
+ *    where a-e represent different actions
+ * Note this assumes that the states and actions are the same size 
+ * The + 1 is for the state entry
+ */
+#define MAKEFSMTable(tableName,numStates,numEvents,numActions) \
+static CONST kal_uint8 ROM tableName[numStates][numEvents][numActions + 1]
+
+
+/* The macro FSMTable is used to Instantiate a FSMTable
+ * It just does the required type casting
+ *
+ * Example
+ * Instantiate a FSMTBL with FSMTable callFSM
+ * FSMTBL callFSMTable(FSMTable(callFSM),2,3,1,0);
+ */
+#define FSMTable(tableName) (FSMState*)&tableName
+
+#ifdef TRACEON
+void setFSMTraceInfo (FSMPtr fsm, kal_uint8 fsmId, ProtocolEngineID engineId);
+
+#define FSMTRACE_INFO(fsm, id, engineId) setFSMTraceInfo(fsm, id, engineId)
+
+#if (ITRACE_TYPE == TOKEN_TRACING)
+void setFSMExtendedTraceInfo (FSMPtr fsm, kal_uint8 fsmNameTableId, kal_uint8 fsmId,
+                              ProtocolEngineID engineId,
+                              kal_uint8 stateTableId, kal_uint8 eventTableId);
+
+#define FSMEXTTRACE_INFO(fsm, engineId, fsmNameTable, fsmNameTableId, fsmId, \
+                         stateNameTable, stateNameTableId, \
+                         eventNameTable, eventNameTableId) \
+   setFSMExtendedTraceInfo(fsm, fsmNameTableId, fsmId, engineId, \
+                           stateNameTableId, eventNameTableId)
+
+#else   /* !TOKEN_TRACING */
+void setFSMExtendedTraceInfo (FSMPtr fsm, const kal_char* fsmNameTable[],
+                              kal_uint8 fsmId, ProtocolEngineID engineId,
+                              const kal_char* stateTable[],
+                              const kal_char* eventTable[]);
+
+#define FSMEXTTRACE_INFO(fsm, engineId, fsmNameTable, fsmNameTableId, fsmId, \
+                         stateNameTable, stateNameTableId, \
+                         eventNameTable, eventNameTableId) \
+   setFSMExtendedTraceInfo(fsm, fsmNameTable, fsmId, engineId, \
+                           stateNameTable, eventNameTable)
+#endif  /* ITRACE_TYPE */ 
+
+#else   /* !TRACEON */
+#define FSMTRACE_INFO(fsm, id, engineId)
+#define FSMEXTTRACE_INFO(fsm, engineId, fsmNameTable, fsmNameTableId, fsmId, \
+                         stateNameTable, stateNameTableId, \
+                         eventNameTable, eventNameTableId) 
+#endif  /* TRACEON */
+
+
+
+
+
+
+#endif  /* __FSM_H_ */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Field.h b/mcu/interface/protocol/as_c2k/1xrtt/Field.h
new file mode 100644
index 0000000..9dee925
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Field.h
@@ -0,0 +1,2246 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     field.h - Message Field Width Definitions
+ *
+ * Purpose:    Header file containing Message field width definitions
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.11 $
+ *    $Author: vsethuraman $
+ *
+ *       $Log: field.h $
+ *
+ *       06 14 2019 yanfeng.xu
+ *       [MOLY00413189] [Cervino][MT6762][P0][MP2][Sprint][FT_REG][Chicago][SI2][C2K][C2K_Perfromance_FT_06]Mobile Station Reject Order decode error
+ *       Revision 1.11  2006/03/03 13:41:03  vsethuraman
+ *       CR7207 :- PN310 CSS and ERI changes.
+ *       Revision 1.10  2005/03/18 11:47:03  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.9  2004/10/07 12:42:29  blee
+ *       Added DDW and REXMIT_DELAY
+ *       Revision 1.8  2004/10/05 16:44:25  asharma
+ *       Fixed CR5104 & CR5228 for LGE Rel-C compliance.
+ *       Revision 1.7  2004/09/28 16:57:08  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.4  2004/04/23 10:49:58  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.3.1.2  2004/04/14 15:19:53  asharma
+ *       Revision 1.3  2004/04/06 14:02:06  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:08:48  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:18:06  bcolford
+ *       Update for merge.
+ *       Revision 1.30  2003/05/21 17:10:35  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.29  2002/12/30 19:03:20  akayvan
+ *       Per CR570, Cosmetic changes for replacement of
+ *       IS2000A with either IS2000_REV_A or IS2000_REV_0.
+ *       Revision 1.28  2002/12/26 11:46:52  hans
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0 for rev A and Rev 0 specific code.
+ *       Revision 1.27  2002/10/22 09:58:52  mclee
+ *       Add new #define CP_RESERVED_2_WIDTH
+ *       Revision 1.26  2002/10/21 12:02:44  hans
+ *       CR1445, RC_MAP_WIDTH fields corrected to 3 bit
+ *       Revision 1.25  2002/09/05 18:58:19  hans
+ *       CP_BAND_CLASS_BIT_FIELD_WIDTH added for CR1203
+ *       Revision 1.24  2002/08/27 17:04:27  byang
+ *       Add field width definition for SCH information in UHDM.
+ *       Revision 1.23  2002/08/19 10:15:41  dstecker
+ *       Added candidate frequency fields
+ *       Revision 1.22  2002/07/15 13:12:14  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.21  2002/06/06 13:12:16  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.20  2002/05/08 16:47:44  byang
+ *       Add field width for F-SCH PMRM.
+ *       Revision 1.19  2002/02/19 14:35:18  akayvan
+ *       RPC Mods.  Added bit field widths for RPC fileds of PCNM.
+ *       Revision 1.18  2002/02/14 16:15:18  byang
+ *       Removed obsolete constant definitions.
+ *       Revision 1.17  2001/11/16 10:58:21  dstecker
+ *       Handoff fixes and reverse power control additions
+ *       Revision 1.16  2001/10/01 17:27:49  ameya
+ *       Added #define for DTMF digit length
+ *       Revision 1.15  2001/09/25 16:35:59  mclee
+ *       Changed CP_CH_IND_WIDTH from 3 to 2
+ *       Revision 1.14  2001/09/20 13:06:32  dstecker
+ *       Fixed traffic handoff bugs
+ *       Revision 1.13  2001/09/07 18:02:34  akayvan
+ *       Added bit field widths for the PCNM, and OLRM per FPC.
+ *       Revision 1.12  2001/08/30 14:53:33  byang
+ *       Added new field width definitions for ESCAM, RAM, ERM,
+ *       RRM, ERRM, and RRRM.
+ *       Revision 1.11  2001/08/03 15:14:38  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.10  2001/07/18 15:09:24  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.9  2001/06/29 10:44:13  hans
+ *       Width definitions for new message field added for new field defined in Ms Cap Db used in IS2000 status request / response message
+ *       Revision 1.8  2001/06/18 15:23:12  chinh
+ *       Add new constants for information record in FNM and AWIM.
+ *       Revision 1.7  2001/04/27 16:29:31  byang
+ *       Update processing of EGSRM & ECCLM for IS-2000 Rev.0.
+ *       Revision 1.6  2001/04/18 11:01:15  chinh
+ *       Fixed ORM problem
+ *       Revision 1.5  2001/04/11 16:21:07Z  akayvan
+ *       Changed the value of CP_RTC_SERV_CON_SEQ_WIDTH from 4 to 3.  Added CP_IS2K_REV0_RESERVED_WIDTH,
+ *       CP_FOR_SCH_CC_INCL_WIDTH, and CP_REV_SCH_CC_INCL_WIDTH per IS2K Rev0 compliance.
+ *       Revision 1.4  2001/03/28 16:16:26  akayvan
+ *       Intoduced CP_IS2000_SERVICE_CONNECT_RSVD_WIDTH,
+ *       and CP_IS95_SERVICE_CONNECT_RSVD_WIDTH instead
+ *       of CP_SERVICE_CONNECT_RSVD_WIDTH.
+ *       Revision 1.3  2001/03/16 11:29:58  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.2  2001/01/29 18:13:20  hans
+ *       New field added for (IS2000.rev.a) auxililary powere measurement channels
+ *       Revision 1.1  2001/01/17 18:58:35Z  plabarbe
+ *       Initial revision
+ *       Revision 1.6  2000/12/05 17:44:21  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.5  2000/11/27 11:58:04  chinh
+ *       Added new fields for Origination and Registration messages.
+ *       Added fields for LAC on dsch.
+ *       Revision 1.4  2000/11/14 01:04:03Z  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.2  2000/11/13 22:24:31Z  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:12Z  fpeng
+ *       Initial revision
+ *       Revision 1.5  2000/09/20 20:16:00Z  RSATTARI
+ *       Corrected CP_NGHBR_SRCH_MODE_WIDTH to 2.
+ *       Revision 1.4  2000/09/08 23:59:01Z  RSATTARI
+ *       Added capability information record field width.
+ *       Revision 1.3  2000/08/23 22:06:41Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.21  2000/02/22 16:56:53  scotvold
+ *       Changed CP_BURST_ADDR_LEN_WIDTH from 8 to 4.
+ *       Added CP_EXT_SYS_PAR_RSVD_WIDTH to enable check for P_REV > 3
+ *       fields in the Extended System Parameters message.
+ *
+ *       Revision 1.2  2000/03/01 18:06:30Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.20  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.19  1999/10/19 23:58:31  gfrye
+ *       Added field definitions for the two page messages that were made
+ *       obsolete in IS-95B.
+ *
+ *       Revision 1.18  1999/09/02 20:04:06  gfrye
+ *       Added more field width definitions for rev 3+ originations and
+ *       page responses.
+ *
+ *       Revision 1.17  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.16  1999/05/19 20:17:58  mhayduk
+ *       Added defines for MAX_NUM_ALT_SO and EC_THRESH.
+ *
+ *       Revision 1.15  1999/05/19 16:56:26  mhayduk
+ *       Added new field width definitions for origination/page
+ *       response messages.
+ *
+ *       Revision 1.14  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.13  1999/01/26 18:50:08  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.12  1998/12/02 00:06:12  scotvold
+ *       Added CP_SYS_TIME_REMAINDER_WIDTH field.
+ *
+ *       Revision 1.11  1998/11/02 22:04:48  scotvold
+ *       Added record field width defn.
+ *
+ *       Revision 1.10  1998/10/23 19:54:34  mhayduk
+ *       Changed NUM_INFO_REC_WIDTH to 4 from 3 for new IS-95B rev.
+ *
+ *       Revision 1.9  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.8  1998/08/29 01:21:45  mhayduk
+ *       Corrected AUTHR size to be 18 instead of 26.
+ *
+ *       Revision 1.7  1998/07/29 23:48:57  mhayduk
+ *       Added accessor to overflow status.
+ *
+ *       Revision 1.6  1998/07/18 00:40:13  scotvold
+ *       Fixed Service Configuration record field defn.
+ *
+ *       Revision 1.5  1998/05/28 15:03:07  mhayduk
+ *       Added new defintions for num pilots width for extended channel
+ *       assignments.
+ *
+ * Revision 1.4  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.2  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _FIELD_H
+
+  #define _FIELD_H 1
+
+
+/****************************************************************************
+ * Common field width definitions
+ ****************************************************************************/
+
+/* Basic field width definitions */
+#define CP_UINT8_WIDTH          8
+#define CP_MSG_LENGTH_OFFSET    0
+
+/* Common field width definitions */
+#define CP_MSG_LEN_WIDTH        8
+#define CP_MSG_TYPE_WIDTH       8
+#define CP_CRC_16_WIDTH         16
+#define CP_CRC_30_WIDTH         30
+#define CP_ACK_SEQ_WIDTH        3
+#define CP_MSG_SEQ_WIDTH        3
+#define CP_ACK_REQ_WIDTH        1
+#define CP_ENCRYPTION_WIDTH     2
+#define CP_VALID_ACK_WIDTH      1
+#define CP_ACK_TYPE_WIDTH       3
+#define CP_ADDR_TYPE_WIDTH      3  /* Address type                         */
+#define CP_ADDR_LEN_WIDTH       4  /* Address length                       */
+#define CP_CONFIG_MSG_SEQ_WIDTH 6  /* Config message sequence number       */
+
+#define CP_ARQ_FIELDS_WIDTH     (CP_ACK_SEQ_WIDTH+CP_MSG_SEQ_WIDTH+CP_ACK_REQ_WIDTH+CP_VALID_ACK_WIDTH)
+#define CP_ADDR_FIELDS_WIDTH    (CP_ADDR_TYPE_WIDTH+CP_ADDR_LEN_WIDTH+(CP_ADDR_LEN_WIDTH*8) )
+#define CP_RESERVED_1_WIDTH         1
+#define CP_RESERVED_2_WIDTH			2
+#define CP_ADD_RECORD_LEN_WIDTH_8   8
+
+/**********************************************************/
+/*   P_REV_IN_USE >= 7 specific field width definitions   */
+/**********************************************************/
+
+#define CP_EXT_MSG_LEN_WIDTH        16
+#define CP_ENC_FIELDS_INCL_WIDTH    1
+#define CP_SIG_ENCRYPT_MODE_WIDTH   3
+#define CP_MACI_INCL_WIDTH_IDLE     2
+#define CP_MACI_INCL_WIDTH_TRAFFIC  1
+#define CP_ENC_SEQ_WIDTH            8
+
+#define CP_EXT_MSG_LEN_INCL_WIDTH   1
+#define CP_8BIT_EXT_MSG_LEN_WIDTH   8
+#define CP_7BIT_MSG_LEN_WIDTH       7
+#define CP_15BIT_MSG_LEN_WIDTH      15
+
+#define CP_COMMON_FIELD_WIDTH \
+                            (CP_MSG_LEN_WIDTH +  \
+                             CP_MSG_TYPE_WIDTH + \
+                             CP_ACK_SEQ_WIDTH +  \
+                             CP_MSG_SEQ_WIDTH +  \
+                 CP_ACK_REQ_WIDTH +  \
+                 CP_ENCRYPTION_WIDTH)
+
+#define CP_MAX_TC_L3_MSG_WIDTH_NO_CRC    2024
+#define CP_MAX_TC_L3_MSG_BODY_WIDTH      2016
+#define CP_MAX_TC_L3_MSG_CONTENT_WIDTH      \
+          (CP_MAX_TC_L3_MSG_BODY_WIDTH -    \
+           CP_COMMON_FIELD_WIDTH)
+
+
+#define CP_ACK_SEQ_OFFSET_WIDTH \
+                            (CP_MSG_LEN_WIDTH + \
+                             CP_MSG_TYPE_WIDTH)
+
+#define CP_RECORD_TYPE_WIDTH    8
+#define CP_RECORD_LEN_WIDTH     8
+#define CP_RECORD_HEADER_WIDTH  16
+
+#define CP_USE_TIME_WIDTH       1
+#define CP_ACTION_TIME_WIDTH    6
+
+#define CP_ORDER_WIDTH          6
+#define CP_ADD_RECORD_LEN_WIDTH 3
+#define CP_ORDQ_WIDTH           8
+#define CP_RETRY_TYPE_WIDTH     3
+
+
+#define CP_P_REV_WIDTH          8  /* Protocol revision */
+
+#define CP_SYS_TIME_REMAINDER_WIDTH   4
+
+#define CP_BCN_WIDTH			3
+#define CP_TIME_OFFSET_WIDTH  	10
+#define CP_REPEAT_TIME_OFFSET_WIDTH  	5
+#define	CP_MAX_EXT_BCAST_SDU_LEN		16
+
+
+/************************************************/
+/* Common Authentication field width definitions */
+/************************************************/
+#define CP_AUTH_MODE_WIDTH    2
+#define CP_RANDC_WIDTH        8
+#define CP_AUTHR_WIDTH        18
+#define CP_AUTHU_WIDTH        18
+#define CP_COUNT_WIDTH        6
+#define CP_RANDU_WIDTH        24   /* Random challenge data                */
+#define CP_RAND_WIDTH         32
+#define CP_RANDBS_WIDTH       32
+
+/************************************************/
+/* Common Registration field width definitions */
+/************************************************/
+#define CP_SID_WIDTH            15  /* Home system ID                       */
+#define CP_NID_WIDTH            16  /* Network ID                           */
+#define CP_REG_ZONE_WIDTH       12  /* Registration zone                    */
+#define CP_TOTAL_ZONES_WIDTH     3  /* Total zones                          */
+#define CP_ZONE_TIMER_WIDTH      3  /* Zone Timer                           */
+#define CP_MULT_SIDS_WIDTH       1  /* Multiple SIDS                        */
+#define CP_MULT_NIDS_WIDTH       1  /* Multiple NIDS                        */
+#define CP_BASE_ID_WIDTH        16  /* Base station identification          */
+#define CP_BASE_CLASS_WIDTH      4  /* Base station class                   */
+#define CP_PAGE_CHAN_WIDTH       3  /* Number of paging channels            */
+#define CP_MAX_SLOT_CYCLE_WIDTH  3  /* Maximium slot cycle index            */
+#define CP_HOME_REG_WIDTH        1  /* Home registration indicator          */
+#define CP_FOR_SID_REG_WIDTH     1  /* SID roamer registration indicator    */
+#define CP_FOR_NID_REG_WIDTH     1  /* NID roamer registration indicator    */
+#define CP_POWER_UP_REG_WIDTH    1  /* Powerup registration indicator       */
+#define CP_POWER_DOWN_REG_WIDTH  1  /* Powerdown registration indicator     */
+#define CP_PARAMETER_REG_WIDTH   1  /* Parameter change registration indicator */
+#define CP_REG_PRD_WIDTH         7  /* Registration period                  */
+#define CP_BASE_LAT_WIDTH       22  /* Base station latitude                */
+#define CP_BASE_LONG_WIDTH      23  /* Base station longitude               */
+#define CP_REG_DIST_WIDTH       11  /* Registration distance                */
+
+
+#define CP_QPCH_SUPPORTED_WIDTH	    1
+#define CP_ENHANCED_RC_WIDTH	    1
+#define CP_UZID_INCL_WIDTH		    1
+#define CP_UZID_WIDTH			    16
+#define CP_GEO_LOC_INCL_WIDTH	    1
+#define CP_GEO_LOC_TYPE_WIDTH	    3
+#define CP_OTD_SUPPORTED_WIDTH	    1
+#define CP_STS_SUPPORTED_WIDTH	    1
+#define CP_3X_CCH_SUPPORTED_WIDTH	1
+#define CP_WLL_INCL_WIDTH			1
+#define CP_WLL_DEVICE_TYPE_WIDTH	3
+#define CP_HOOK_STATUS_WIDTH		4
+#define CP_ENC_INFO_INCL_WIDTH		1
+#define CP_SIG_ENCRYPT_SUP_WIDTH	8
+#define CP_SIG_ENCRYPT_REQ_WIDTH	1
+#define CP_KEY_SEQ_NEW_INCL_WIDTH	1
+#define CP_KEY_SEQ_NEW_WIDTH		4
+#define CP_ENC_SEQ_H_WIDTH			24
+#define CP_ENC_SEQ_H_SIG_WIDTH		8
+#define CP_UI_ENCRYPT_SUP_WIDTH		8
+
+#define CP_MSG_INT_INFO_INCL_WIDTH  1
+#define CP_FOR_PDCH_SUPPORTED_WIDTH 1
+
+/************************************************/
+/* Common Handoff field width definitions */
+/************************************************/
+#define CP_SRCH_WIN_A_WIDTH      4  /* Active/Candidate search window size  */
+#define CP_SRCH_WIN_N_WIDTH      4  /* Neighbor search window size          */
+#define CP_SRCH_WIN_R_WIDTH      4  /* Remaining search window size         */
+#define CP_NGHBR_MAX_AGE_WIDTH   4  /* Neighbor set maximum age             */
+#define CP_RESCAN_WIDTH          1  /* Rescan indicator                     */
+#define CP_T_ADD_WIDTH           6  /* Pilot detection threshold            */
+#define CP_T_DROP_WIDTH          6  /* Pilot drop threshold                 */
+#define CP_T_COMP_WIDTH          4  /* Active vs Cand. set comp. threshold  */
+#define CP_T_TDROP_WIDTH         4  /* Drop timer value                     */
+#define CP_T_TDROP_RANGE_WIDTH   4  /* Drop timer range value               */
+#define CP_NUM_OPT_MSG_BITS_WIDTH     4
+#define CP_APPIM_PERIOD_INDEX_WIDTH   3
+#define CP_GEN_OVHD_CYCLE_INDEX_WIDTH 3
+#define CP_ATIM_CYCLE_INDEX_WIDTH     3
+#define CP_LOC_UNC_H_WIDTH            4
+#define CP_HEIGHT_WIDTH              14
+#define CP_LOC_UNC_V_WIDTH            4
+#define CP_HDM_SEQ_WIDTH         2
+#define CP_PARM_INCL_WIDTH       1
+#define CP_SOFT_SLOPE_WIDTH      6
+#define CP_ADD_INTERCEPT_WIDTH   6
+#define CP_DROP_INTERCEPT_WIDTH  6
+#define CP_SCH_INCL_WIDTH        1
+#define CP_HOCM_NUM_PILOTS_WIDTH 4
+
+/************************************************/
+/* Common Neighbor field width definitions */
+/************************************************/
+#define CP_PILOT_INC_WIDTH       4   /* Pilot Inc                            */
+#define CP_NGHBR_CONFIG_WIDTH    3   /* Neighbor Config                      */
+
+/*R.Sattari, 7/5/00 */
+#define CP_NGHBR_CONFIG_PN_INCL_WIDTH  1
+#define CP_FREQ_FIELDS_INCL_WIDTH      1
+
+#define CP_NGHBR_PN_WIDTH        9   /* Neighbor PN                          */
+#define CP_SEARCH_PRIORITY_WIDTH 2   /* Search Priority                      */
+#define CP_FREQ_INCL_WIDTH       1   /* Frequency Included indicator         */
+#define CP_NGHBR_BAND_WIDTH      5   /* Neighbor band                        */
+#define CP_NGHBR_FREQ_WIDTH      11  /* Neighbor frequency                   */
+#define CP_FREQ_INCL_OFFSET_WIDTH 14 /* Offset from start of rec to FREQ_INCL */
+
+/* R. Sattari, 9/20/00, changed from 3 to 2 */
+#define CP_NGHBR_SRCH_MODE_WIDTH   2
+
+/* R.Sattari, 6/30/00, added hopping pilot defenitions */
+#define CP_USE_TIMING_WIDTH         1
+#define CP_GLOBAL_TIMING_INCL_WIDTH 1
+#define CP_GLOBAL_TX_DURATION_WIDTH 4
+#define CP_GLOBAL_TX_PERIOD_WIDTH   7
+#define CP_TIMING_INCL_WIDTH        1
+#define CP_NGHBR_TX_OFFSET_WIDTH    7
+#define CP_NGHBR_TX_DURATION_WIDTH  4
+#define CP_NGHBR_TX_PERIOD_WIDTH    7
+
+#define CP_SRCH_OFFSET_INCL_WIDTH     1
+#define CP_ADD_PILOT_REC_INCL_WIDTH   1
+#define CP_NGHBR_PILOT_REC_TYPE_WIDTH 3
+#define CP_NGHBR_PILOT_REC_LEN_WIDTH  3
+#define CP_OTD_POWER_LEVEL_WIDTH      2
+#define CP_SRCH_OFFSET_NGHBR_WIDTH    3
+
+/* General Neighbor List Message (GNLM) fields */
+#define CP_RESQ_DELAY_TIME            6
+#define CP_RESQ_ALLOWED_TIME          6
+#define CP_RESQ_ATTEMPT_TIME          6
+#define CP_RESQ_CODE_CHAN             11
+#define CP_RESQ_QOF                   2
+#define CP_RESQ_MIN_PERIOD            5
+#define CP_RESQ_NUM_TOT_TRANS_20MS    4
+#define CP_RESQ_NUM_TOT_TRANS_5MS     4
+#define CP_RESQ_NUM_PREAMBLE_RC1_RC2  3
+#define CP_RESQ_NUM_PREAMBLE          3
+#define CP_RESQ_POWER_DELTA           3
+
+/* R.Sattari 6/29/00, changed from 5 */
+#define CP_NUM_NGHBR_WIDTH         6
+
+#define CP_SRCH_WIN_NGHBR_WIDTH    4
+#define CP_NGHBR_LIST_UPDATE_FIXED_FIELD_WIDTH \
+                        (CP_COMMON_FIELD_WIDTH + \
+                         CP_PILOT_INC_WIDTH)
+
+/* Neighbor List Update Message */
+#define CP_SEARCH_WIN_NGHBR_WIDTH  4
+
+/* Universal Neighbor List Message */
+#define CP_NUM_RADIO_INTERFACE     4
+#define CP_RADIO_INTERFACE_TYPE    4
+#define CP_RADIO_INTERFACE_LEN     8
+#define CP_NGHBR_PILOT_REC_TYPE    3
+#define CP_NGHBR_PILOT_REC_TYPE_000_RESERVE 4
+#define CP_QOF                     2
+#define CP_WALSH_LENGTH            3
+#define CP_AUX_PILOT_WALSH         6
+#define CP_SRCH_OFFSET_NGHBR       3
+#define CP_NGHBR_PILOT_REC_LEN     3
+/************************************************/
+/* Common CDMA physical field width definitions */
+/************************************************/
+#define CP_CDMA_FREQ_WIDTH   11      /* CDMA frequency                       */
+#define CP_PILOT_PN_WIDTH    9       /* Pilot PN                             */
+#define CP_LC_STATE_WIDTH    42      /* Long code state                      */
+#define CP_CODE_CHAN_WIDTH   8       /* Code Channel                         */
+#define CP_SLOT_CYCLE_INDEX_WIDTH  3
+#define CP_RETURN_CAUSE_WIDTH      4
+#define CP_SCM_WIDTH               8
+
+/************************************************/
+/* Common Analog physical field width definitions */
+/************************************************/
+#define CP_ANALOG_SYS_WIDTH     1    /* System indicator                     */
+#define CP_USE_ANALOG_SYS_WIDTH 1    /* Use analog system indicator          */
+#define CP_VMAC_WIDTH           3    /* Voice MS Attenuation Code            */
+#define CP_ANALOG_CHAN_WIDTH    11   /* Voice Channel Number                 */
+#define CP_SCC_WIDTH            2    /* SAT Color Code                       */
+#define CP_MEM_WIDTH            1    /* Message Encryption Mode              */
+#define CP_AN_CHAN_TYPE_WIDTH   2    /* Analog Voice Channel type            */
+#define CP_DSCC_MSB_WIDTH       1    /* Digital sup. color code              */
+#define CP_BAND_CLASS_WIDTH     5
+/*For unfAHDM */
+#define CP_CON_REF_INCL_WIDTH   1
+
+/*R.Sattari, 7/5/00 */
+#define CP_NUM_ANALOG_NGHBR_WIDTH 3
+#define CP_ANALOG_BAND_CLASS_WIDTH 5
+#define CP_SYS_A_B_WIDTH        2
+
+/************************************************/
+/* Common Pilot Measurement field width definitions */
+/************************************************/
+#define CP_ACTIVE_PILOT_STRENGTH_WIDTH 6
+#define CP_FIRST_IS_ACTIVE_WIDTH 1
+#define CP_FIRST_IS_PTA_WIDTH    1
+#define CP_NUM_ADD_PILOTS_WIDTH 3
+#define CP_PILOT_STRENGTH_WIDTH 6
+#define CP_PILOT_PN_PHASE_WIDTH 15
+
+
+/************************************************/
+/* Common Address field width definitions */
+/************************************************/
+#define CP_DELETE_FOR_TMSI_WIDTH     1  /* Delete foreign TMSI               */
+#define CP_USE_TMSI_WIDTH            1  /* Use TMSI indicator                */
+#define CP_PREF_MSID_TYPE_WIDTH      2  /* Preferred MSID Type               */
+#define CP_PREF_MSID_TYPE_P3_WIDTH   4  /* Preferred MSID for P_REV < 3      */
+#define CP_TMSI_ZONE_LEN_WIDTH       4  /* TMSI zone length                  */
+#define CP_TMSI_CODE_WIDTH           32 /* TMSI code                         */
+#define CP_TMSI_CODE_24_WIDTH        24 /* TMSI code - least 24 bits         */
+#define CP_TMSI_CODE_16_WIDTH        16 /* TMSI code - least 16 bits         */
+#define CP_TMSI_EXP_TIME_WIDTH       24 /* TMSI expiration time              */
+#define CP_MSID_TYPE_WIDTH           3
+#define CP_MSID_LEN_WIDTH            4
+#define CP_ESN_WIDTH                 32
+#define CP_IMSI_ADDRNUM_WIDTH        3
+#define CP_IMSI_ADDR_TYPE_WIDTH      3
+#define CP_IMSI_ADD_LEN_WIDTH        4
+#define CP_IMSI_S2_WIDTH             10
+#define CP_IMSI_S1_WIDTH             24
+#define CP_IMSI_S_WIDTH              34
+#define CP_MCC_WIDTH                 10  /* Mobile country code              */
+#define CP_IMSI_11_12_WIDTH          7   /* 11th and 12th digits of IMSI     */
+#define CP_IMSI_CLASS_WIDTH          1
+#define CP_IMSI_CLASS0_TYPE_WIDTH    2
+#define CP_IMSI_CLASS1_TYPE_WIDTH    1
+#define CP_UIM_ID_WIDTH                        32
+
+/*************************************************/
+/* Common Feature Notification width definitions */
+/*************************************************/
+#define CP_RELEASE_WIDTH             1  /* release indicator width           */
+#define CP_AUTO_MSG_INTERVAL         3
+#define CP_BROADCAST_GPS_ASST        1
+#define CP_CS_SUPPORTED              1
+#define CP_SIG_ENCRYPT_SUP           8
+#define CP_UI_ENCRYPT_SUP            8
+#define CP_STORE_KEY                 1
+#define CP_MS_INIT_POS_LOC_SUP_IND   1
+#define CP_MSG_INTEGRITY_SUP         1
+#define CP_SIG_INTEGRITY_SUP_INCL    1
+#define CP_SIG_INTEGRITY_SUP         8
+
+/************************************************/
+/* Common Service Redirection field width definitions */
+/************************************************/
+#define CP_RETURN_IF_FAIL_WIDTH            1
+#define CP_DELETE_TMSI_WIDTH               1
+#define CP_REDIRECT_TYPE_WIDTH             1
+#define CP_SERVICE_REDIRECTION_RSVD_WIDTH  4
+
+/* Service Redirection Analog Record */
+#define CP_EXPECTED_SID_WIDTH              15
+#define CP_IGNORE_CDMA_WIDTH               1
+#define CP_SYS_ORDERING_WIDTH              3
+#define CP_MAX_REDIRECT_DELAY_WIDTH        5       /* Maximum delay upon redirection      */
+
+#define CP_SRD_REDIRECTION_ANALOG_RECORD_WIDTH \
+                (CP_EXPECTED_SID_WIDTH + \
+                 CP_IGNORE_CDMA_WIDTH  + \
+                 CP_SYS_ORDERING_WIDTH + \
+                 CP_MAX_REDIRECT_DELAY_WIDTH)
+
+#if ((CP_SRD_REDIRECTION_ANALOG_RECORD_WIDTH%8) != 0)
+#error "CP_SRD_REDIRECTION_ANALOG_RECORD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Service Redirection CDMA Record   */
+#define CP_EXPECTED_NID_WIDTH              16
+#define CP_SRD_CDMA_REC_RSVD_WIDTH         4
+#define CP_NUM_CHANS_WIDTH                 4
+#define CP_CDMA_CHAN_WIDTH                 11
+#define CP_SRD_REDIRECTION_CDMA_FIXED_RECORD_WIDTH \
+                (CP_BAND_CLASS_WIDTH         + \
+                 CP_EXPECTED_SID_WIDTH       + \
+                 CP_EXPECTED_NID_WIDTH       + \
+                 CP_SRD_CDMA_REC_RSVD_WIDTH  + \
+                 CP_NUM_CHANS_WIDTH)
+#define CP_REDIRECT_ACCOLC_WIDTH   16 /* Access overload classes             */
+
+/* Extend Global Service Redirect Message */
+#define CP_REDIRECT_P_MIN                  8
+#define CP_REDIRECT_P_MAX                  8
+#define CP_REC_TYPE_2_RESERVED             4
+/************************************************/
+/* Common DTMF field width definitions */
+/************************************************/
+#define CP_NUM_DIGITS_WIDTH                8
+#define CP_DTMF_ON_LENGTH_WIDTH            3
+#define CP_DTMF_OFF_LENGTH_WIDTH           3
+#define CP_BURST_DTMF_DIGIT_WIDTH          4
+#define CP_RTC_STATUS_RSVD_WIDTH           7
+
+/************************************************/
+/* Common FTC Power Control field width definitions */
+/************************************************/
+#define CP_PWR_REP_THRESH_WIDTH            5
+#define CP_PWR_REP_FRAMES_WIDTH            4
+#define CP_PWR_THRESH_ENABLE_WIDTH         1
+#define CP_PWR_PERIOD_ENABLE_WIDTH         1
+#define CP_PWR_REP_DELAY_WIDTH             5
+
+/************************************************/
+/* Common Service Negotiation field width definitions */
+/************************************************/
+/* Service Request Message */
+#define CP_SERV_REQ_SEQ_WIDTH              3
+#define CP_REQ_PURPOSE_WIDTH               4
+
+/* Service Response Message */
+#define CP_RESP_PURPOSE_WIDTH              4
+#define CP_BAND_SUB_CLASS_WIDTH            8
+
+/* Service Connect Message */
+#define CP_FTC_SERV_CON_SEQ_WIDTH          3
+#define CP_FTC_SERV_CONNECT_MSG_RSVD_WIDTH      5
+
+#define CP_CC_INFO_INCL_WIDTH              1
+#define CP_NUM_CALLS_ASSIGN_WIDTH          8
+#define CP_RESPONSE_IND_WIDTH              1
+#define CP_TAG_WIDTH                       4
+#define CP_STATUS_RESPONSE_RSVD_WIDTH      4
+
+/* Service Option Control Message */
+#define CP_SERV_OPT_CTL_REC_LEN_WIDTH      8
+/* Service Option Control Type Specific Fields  */
+#define CP_SO_CTL_REC_VOICE_LEN            1
+#define CP_SO_CTL_RATE_REDUC_WIDTH         3
+#define CP_SO_CTL_TYPE_SPECIFIC_RSVD_WIDTH 3
+#define CP_SO_CTL_MOB_TO_MOB_WIDTH         1
+#define CP_SO_CTL_INIT_CODEC_WIDTH         1
+
+/* Service Connect Completion Message */
+#define CP_RTC_SERV_CON_SEQ_WIDTH                 3
+#define CP_SERVICE_CON_COMPLETION_RSVD1_WIDTH      1
+#define CP_SERVICE_CON_COMPLETION_RSVD_WIDTH       3
+
+
+/* Service Option Control Message */
+#define CP_SERV_OPT_CTL_RSVD_WIDTH                7
+
+/* Radio Configuration Parameter Message */
+
+#define CP_FTC_FOR_FCH_ACK_MASK_RL_BLANKING_WIDTH           16
+#define CP_FTC_FOR_FCH_ACK_MASK_NO_RL_BLANKING_WIDTH        16
+
+#define CP_FTC_REV_FCH_ACK_MASK_WIDTH                       16
+
+#define CP_FTC_FOR_SCH_ACK_MASK_RL_BLANKING_WIDTH           16
+#define CP_FTC_FOR_SCH_ACK_MASK_NO_RL_BLANKING_WIDTH        16
+#define CP_REV_SCH_ACK_MASK_WIDTH                           16
+
+#define CP_FTC_FOR_N2M_IND_WIDTH                            3
+#define CP_FTC_FPC_MODE_WIDTH                               3
+#define CP_FTC_RPC_MODE_WIDTH                               2
+#define CP_FTC_POWER_CNTL_STEP_WIDTH                        3
+#define CP_FTC_FOR_FCH_BLANKING_DUTYCYCLE_WIDTH             3
+#define CP_FTC_REV_FCH_BLANKING_DUTYCYCLE_WIDTH             3
+#define CP_FTC_REV_ACKCH_GAIN_ADJ_ACS1_WIDTH                7
+#define CP_FTC_REV_ACKCH_GAIN_ADJ_ACS2PLUS_WIDTH            7
+
+#define CP_NUM_RC_PARAM_RECORDS_WIDTH                       3
+#define CP_QOF_SET_IN_USE_WIDTH                             3
+#define CP_REV_SCH0_ACK_CH_WALSH_WIDTH                      7
+#define CP_REV_SCH0_ACK_BIT_WIDTH                           5
+#define CP_REV_SCH1_ACK_BIT_WALSH_WIDTH                     7
+#define CP_REV_SCH1_ACK_BIT_WIDTH                           5
+
+/*#define CP_FOR_FCH_CCSH_INTERLEAVER_TYPE_WIDTH              1 */
+
+
+/************************************************/
+/* PDCH field width definitions 				*/
+/************************************************/
+#define CP_SRID_RESTORE_WIDTH	3
+#define CP_PLCM_TYPE_WIDTH		4
+#define CP_EXT_CH_IND_WIDTH		5
+#define CP_FULL_CI_FEEDBACK_IND 1
+#define CP_REV_CQICH_FRAME_OFFSET_WIDTH 4
+#define CP_REV_CQICH_REPS_WIDTH 2
+#define CP_REV_ACKCH_REPS_WIDTH 2
+#define CP_PDCH_RC_WIDTH		5
+#define CP_PDCH_GROUP_IND_INCL	1
+#define CP_FOR_PDCH_PARAMS_INCL 1
+#define CP_NUM_SOFT_SWITCHING_FRAMES_WIDTH 4
+#define CP_NUM_SOFTER_SWITCHING_FRAMES_WIDTH 4
+#define CP_NUM_SOFT_SWITCHING_FRAMES_CHM_WIDTH 4
+#define CP_NUM_SOFTER_SWITCHING_FRAMES_CHM_WIDTH 4
+#define CP_NUM_SOFT_SWITCHING_SLOTS_WIDTH 2
+#define CP_NUM_SOFTER_SWITCHING_SLOTS_WIDTH 2
+#define CP_NUM_SOFT_SWITCHING_SLOTS_CHM_WIDTH 2
+#define CP_NUM_SOFTER_SWITCHING_SLOTS_CHM_WIDTH 2
+#define CP_PDCH_SOFT_SWITCHING_DELAY_WIDTH 8
+#define CP_PDCH_SOFTER_SWITCHING_DELAY_WIDTH 8
+#define CP_FOR_PDCH_INCL				1
+#define CP_WALSH_TABLE_ID_WIDTH 		3
+#define CP_NUM_PDCCH_WIDTH				3
+#define CP_FOR_PDCCH_WALSH_WIDTH 		6
+#define CP_MAC_ID_WIDTH					8
+#define CP_REV_CQICH_COVER_WIDTH 		3
+#define CP_FOR_CPCCH_WALSH_WIDTH 		7
+#define CP_FOR_CPCSCH_WIDTH				5
+#define CP_PDCH_GROUP_IND				1
+#define CP_CQICH_ATT_ADJ_GAIN_WIDTH		8
+#define CP_RLGAIN_ACKCQICH_PILOT_WIDTH	6
+
+
+
+/************************************************/
+/* Sync Channel Message field width definitions */
+/************************************************/
+#define CP_SYS_TIME_WIDTH   36      /* System time                          */
+#define CP_LP_SEC_WIDTH     8       /* Leap seconds                         */
+#define CP_LTM_OFF_WIDTH    6       /* Local time offset                    */
+#define CP_DAYLT_WIDTH      1       /* Daylight savings time indicator      */
+#define CP_PRAT_WIDTH       2       /* Page channel rate                    */
+/* BCY 11/15/00 */
+#define CP_EXT_CDMA_FREQ            11
+#define CP_SR1_CDMA_FREQ_NON_TD     11
+#define CP_SR1_BRAT_NON_TD          2
+#define CP_SR1_CRAT_NON_TD          1
+#define CP_BCCH_CODE_CHAN_NON_TD    6
+#define CP_SR1_CDMA_FREQ_TD         11
+#define CP_SR1_BRAT_TD              2
+#define CP_SR1_CRAT_TD              1
+#define CP_BCCH_CODE_CHAN_TD        6
+#define CP_SR1_TD_MODE              2
+#define CP_SR1_TD_POWER_LEVEL       2
+#define CP_SR3_CENTER_FREQ          11
+#define CP_SR3_BRAT                 2
+#define CP_SR3_BCCH_CODE_CHAN       7
+#define CP_SR3_PRIMARY_PILOT        2
+#define CP_SR3_PILOT_POWER1         3
+#define CP_SR3_PILOT_POWER2         3
+#define CP_DS_BLOB                  24
+
+
+
+/************************************************/
+/* Page Channel Message field width definitions */
+/************************************************/
+
+    /* Offsets into messages */
+#define CP_PILOT_PN_OFFSET    \
+                            (CP_MSG_LEN_WIDTH + \
+                             CP_MSG_TYPE_WIDTH )
+                             /* bit offset to PILOT_PN of overhead msgs */
+#define CP_CONFIG_MSG_SEQ_OFFSET \
+                            (CP_PILOT_PN_OFFSET + \
+                             CP_PILOT_PN_WIDTH )
+                             /* bit offset to CONFIG_MSG_SEQ of overhead msgs */
+#define CP_ACC_MSG_SEQ_OFFSET \
+                            (CP_PILOT_PN_OFFSET + \
+                             CP_PILOT_PN_WIDTH )
+                             /* bit offset to ACC_MSG_SEQ of access par msgs */
+#define CP_IDLE_REC_OFFSET   \
+                            (CP_CONFIG_MSG_SEQ_OFFSET + \
+                             CP_CONFIG_MSG_SEQ_WIDTH + \
+                             CP_PILOT_INC )
+                             /* bit offset to Idle record in Nghbr msg */
+#define CP_CDMA_FREQ_OFFSET \
+                            (CP_CONFIG_MSG_SEQ_OFFSET + \
+                             CP_CONFIG_MSG_SEQ_WIDTH )
+                             /* bit offset to CDMA_FREQ of CDMA Ch List */
+
+
+    /* Fields contained in System Parameters Message */
+#define CP_EXT_SYS_PARAMETER_WIDTH 1 /* Ext. System Pars Message indicator  */
+#define CP_EXT_NGHBR_LIST_WIDTH    1 /* Ext. Neighbor List Message indicator*/
+#define CP_GEN_NGHBR_LIST_WIDTH    1 /* Gen. Neighbor List Message indicator*/
+#define CP_GLOBAL_REDIRECT_WIDTH   1 /* Global Svc Redirect Message indicator*/
+
+    /* Fields contained in Access Parameters Message */
+#define CP_ACC_MSG_SEQ_WIDTH     6   /* Access sequence number               */
+#define CP_ACC_CHAN_WIDTH        5   /* Number of access channels            */
+#define CP_NOM_PWR_WIDTH         4   /* Nominal transmit power offset        */
+#define CP_INIT_PWR_WIDTH        5   /* Initial power offset for access      */
+#define CP_PWR_STEP_WIDTH        3   /* Power increment                      */
+#define CP_NUM_STEP_WIDTH        4   /* Number of access probes              */
+#define CP_MAX_CAP_SZ_WIDTH      3   /* Max access ch message capsule size   */
+#define CP_PAM_SZ_WIDTH          4   /* Access Channel preamble length       */
+#define CP_PSIST_09_WIDTH        6   /* Persistence val for access ovld 0-9  */
+#define CP_PSIST_10_WIDTH        3   /* Persistence val for access ovld 10   */
+#define CP_PSIST_11_WIDTH        3   /* Persistence val for access ovld 11   */
+#define CP_PSIST_12_WIDTH        3   /* Persistence val for access ovld 12   */
+#define CP_PSIST_13_WIDTH        3   /* Persistence val for access ovld 12   */
+#define CP_PSIST_14_WIDTH        3   /* Persistence val for access ovld 13   */
+#define CP_PSIST_15_WIDTH        3   /* Persistence val for access ovld 14   */
+#define CP_MSG_PSIST_WIDTH       3   /* Persistence modifier for message tx  */
+#define CP_REG_PSIST_WIDTH       3   /* Persistence modifier for non-reg tx  */
+#define CP_PROBE_PN_RAN_WIDTH    4   /* Time randomization for probes        */
+#define CP_ACC_TMO_WIDTH         4   /* Acknowledgement timeout              */
+#define CP_PROBE_BKOFF_WIDTH     4   /* Probe backoff range                  */
+#define CP_BKOFF_WIDTH           4   /* Probe sequence backoff range         */
+#define CP_MAX_REQ_SEQ_WIDTH     4   /* Max access probe seqs for req attempt*/
+#define CP_MAX_RSP_SEQ_WIDTH     4   /* Max access probe seqs for rsp attempt*/
+#define CP_NOM_PWR_EXT_WIDTH     1   /* Extended nominal transmit power      */
+
+
+/**************************************************/
+/* FCCCH and BCCH Message field width definitions */
+/**************************************************/
+
+/* Offsets into FCCCH and BCCH messages, when EXT_MSG_LENGTH_IND field is set.   */
+
+#define CP_ACK_SEQ_EXT_OFFSET_WIDTH \
+                            (CP_EXT_MSG_LEN_WIDTH + \
+                             CP_MSG_TYPE_WIDTH)
+
+#define CP_PILOT_PN_EXT_OFFSET    \
+                            (CP_EXT_MSG_LEN_WIDTH + \
+                             CP_MSG_TYPE_WIDTH )
+                             /* bit offset to PILOT_PN of overhead msgs */
+
+#define CP_CONFIG_MSG_SEQ_EXT_OFFSET \
+                            (CP_PILOT_PN_EXT_OFFSET + \
+                             CP_PILOT_PN_WIDTH )
+                             /* bit offset to CONFIG_MSG_SEQ of overhead msgs */
+
+
+/* Enhanced Access Parameters Message (EAPM) */
+#define CP_PSIST_PARMS_LEN       5
+#define CP_PSIST_EMG             3
+#define CP_MSG_PSIST_EACH        3
+#define CP_REG_PSIST_EACH        3
+#define CP_EAPM_RESERVED         7
+#define CP_LAC_PARMS_LEN         4
+#define CP_EAPM_ACC_TMO          6
+#define CP_NUM_MODE_SELECTION_ENTRIES 3
+#define CP_ACCESS_MODE           3
+#define CP_ACCESS_MODE_MIN_DURATION 10
+#define CP_ACCESS_MODE_MAX_DURATION 10
+
+#define CP_RLGAIN_COMMON_PILOT   6
+#define CP_IC_THRESH             4
+#define CP_IC_MAX                4
+#define CP_NUM_MODE_PARM_REC     3
+
+#define CP_EACH_PARM_REC_LEN     4
+#define CP_APPLICABLE_MODES      8
+#define CP_EACH_NOM_PWR          5
+#define CP_EACH_INIT_PWR         5
+#define CP_EACH_PWR_STEP         3
+#define CP_EACH_NUM_STEP         4
+
+#define CP_EACH_PREAMBLE_NUM_FRAC       4
+#define CP_EACH_PREAMBLE_FRAC_DURATION  4
+#define CP_EACH_PREAMBLE_OFF_DURATION   4
+#define CP_EACH_PREAMBLE_ADD_DURATION   4
+#define CP_EACH_ACCESS_THRESH           6
+#define CP_EACH_PROBE_BKOFF             4
+#define CP_EACH_BKOFF                   4
+#define CP_EACH_SLOT                    6
+#define CP_EACH_SLOT_OFFSET1            6
+#define CP_EACH_SLOT_OFFSET2            6
+
+#define CP_BA_PARMS_LEN                 3
+#define CP_NUM_EACH_BA                  5
+#define CP_EACH_BA_RATES_SUPPORTED      8
+
+#define CP_RA_PARMS_LEN                 5
+#define CP_NUM_EACH_RA                  5
+#define CP_NUM_CACH                     3
+#define CP_CACH_CODE_RATE               1
+
+#define CP_CACH_CODE_CHAN               8
+
+#define CP_NUM_RCCCH                    5
+#define CP_RCCCH_RATES_SUPPORTED        8
+#define CP_RCCCH_PREAMBLE_NUM_FRAC      4
+#define CP_RCCCH_PREAMBLE_FRAC_DURATION 4
+#define CP_RCCCH_PREAMBLE_OFF_DURATION  4
+#define CP_RCCCH_PREAMBLE_ADD_DURATION  4
+#define CP_RCCCH_SLOT                   6
+#define CP_RCCCH_SLOT_OFFSET1           6
+#define CP_RCCCH_SLOT_OFFSET2           6
+#define CP_RCCCH_NOM_PWR                5
+#define CP_RCCCH_INIT_PWR               5
+#define CP_RA_PC_DELAY                  5
+#define CP_EACAM_CACH_DELAY             4
+#define CP_RCCCH_HO_THRESH              4
+#define CP_EACAM_PCCAM_DELAY            5
+#define CP_NUM_CPCCH                    2
+#define CP_CPCCH_RATE                   2
+#define CP_CPCCH_CODE_CHAN              8
+#define CP_NUM_PCSCH_RA                 7
+
+#define CP_RA_CPCCH_STEP_UP             2   /* Only for PREV7 */
+#define CP_RA_CPCCH_STEP_DN				2	/* Only for PREV7 */
+
+#define CP_NUM_ACCT_SO                  4
+#define CP_ACCT_AOC_BITMAP1             5
+#define CP_ACCT_SO                      16
+#define CP_NUM_ACCT_SO_GRP              3
+#define CP_ACCT_AOC_BITMAP2             5
+#define CP_ACCT_SO_GRP                  5
+
+/* Fields contained in (Extended) Channel Assignment Message */
+#define CP_ASSIGN_MODE_WIDTH    3    /* Assignment Mode                      */
+#define CP_ADD_REC_LEN_WIDTH    8    /* Additional record length             */
+#define CP_RESPOND_WIDTH        1    /* Respond on ACC indicator             */
+#define CP_DEFAULT_CONFIG_WIDTH 3    /* Default Configuration                */
+#define CP_BYPASS_ALERT_ANSWER_WIDTH 1   /* Bypass Indicator                 */
+#define CP_GRANTED_MODE_WIDTH   2    /* Granted Mode                         */
+#define CP_FRAME_OFFSET_WIDTH   4    /* Traffic Channel frame offset         */
+#define CP_EXT_TC_NUM_PILOTS_WIDTH 3 /* Number of Pilots width               */
+
+/* R.Sattari 6/28/00, changed from 5 */
+#define CP_EXT_PC_NUM_PILOTS_WIDTH 6 /* Number of Pilots width               */
+
+#define CP_EXT_TC_NUM_PILOTS    8    /* Number of Pilots in TC Assignment    */
+
+/* R.Sattari 6/28/00, changed from 32 */
+#define CP_EXT_PCH_NUM_PILOTS   64   /* Number of Pilots in PCH Assignment   */
+
+#define CP_FOR_RC               5
+#define CP_REV_RC               5
+#define CP_FPC_INIT_SETPT       8
+#define CP_FPC_SUBCHAN_GAIN     5
+#define CP_RLGAIN_ADJ           4
+#define CP_FPC_FER              5
+#define CP_FPC_MIN_SETPT        8
+#define CP_FPC_MAX_SETPT        8
+#define CP_REV_FCH_GATING_MODE  1
+#define CP_REV_PWR_CNTL_DELAY_INCL  1
+#define CP_REV_PWR_CNTL_DELAY   2
+#define CP_SIG_ENCRYPT_MODE     3
+#define CP_KEY_SIZE             3
+#define CP_USE_NEW_KEY          1
+#define CP_KEY_SEQ              4
+#define CP_CH_IND               2
+#define CP_CH_RECORD_LEN        5
+#define CP_PILOT_RECORD_TYPE    3
+#define CP_CH_IND_01_REC_LEN    3
+#define CP_CODE_CHAN_FCH        11
+#define CP_QOF_MASK_ID_FCH      2
+#define CP_FPC_PRI_CHAN         1
+#define CP_1XRL_FREQ_OFFSET     2
+#define CP_C_SIG_ENCRYPT_MODE_INCL_WIDTH   1
+#define CP_CHANGE_KEYS_WIDTH    1
+#define CP_USE_UAK_WIDTH        1
+
+#define CP_PLCM_TYPE_INCL       1
+#define CP_PLCM_TYPE            4
+#define CP_PLCM_39              39
+
+/* Fields contained in TMSI Assignment Message */
+#define CP_TMSI_RSVD_WIDTH      5
+
+/* General Page Message field IE widths contained in records */
+#define CP_SPECIAL_SERVICE_WIDTH  1
+#define CP_CLASS_WIDTH            2
+#define CP_SUBCLASS_WIDTH         2
+#define CP_SERVICE_OPTION_WIDTH  16
+#define CP_DONE_FIELD_WIDTH       1
+#define CP_SUBCLASS_EXT_WIDTH     2
+/* Field definitions for Page Message and
+ * Slotted Page Message
+ * (NOTE: These messages obsolete in IS-95B
+ */
+#define CP_PAGE_REC_OFFSET          28
+#define CP_MORE_PAGES_WIDTH          1
+#define CP_EXT_ADDR_WIDTH            1
+
+/* Bit offsets into General Page Message */
+#define CP_GP_CFG_MSG_SEQ_OFFSET    16
+#define CP_GP_ACC_MSG_SEQ_OFFSET    22
+#define CP_CLASS_0_DONE_OFFSET      28
+#define CP_CLASS_1_DONE_OFFSET      29
+#define CP_TMSI_DONE_OFFSET         30
+#define CP_ORDERED_TMSIS_OFFSET     31
+#define CP_BROADCAST_DONE_OFFSET    32
+#define CP_ADD_LENGTH_OFFSET        37
+#define CP_GP_REC_OFFSET            40
+/* EXT msg length will make offset 8 bits longer*/
+#define CP_GP_CFG_MSG_SEQ_EXT_OFFSET  CP_GP_CFG_MSG_SEQ_OFFSET + 8
+
+/* Fields contained in Extended System Parameters Message */
+#define CP_BCAST_INDEX_WIDTH        3
+#define CP_IMSI_T_SUPPORTED_WIDTH   1
+#define CP_PACKET_ZONE_ID_WIDTH     8
+#define CP_MAX_NUM_ALT_SO_WIDTH     3
+#define CP_EC_THRESH_WIDTH          5
+#define CP_EC_IO_THRESH_WIDTH       5
+#define CP_INDICATION_WIDTH         1
+#define CP_MAX_NUM_PROBE_HO_WIDTH   3
+#define CP_EXT_SYS_PAR_RSVD_WIDTH   7
+
+/* R.Sattari 6/28/00, changed from 5 */
+#define CP_NGHBR_SET_SIZE_WIDTH     6
+#define CP_BROADCAT_GPS_ASST        1
+
+/* FCCCH Parameters */
+#define CP_NUM_FCCCH                           3
+#define CP_FCCCH_RATE                          3
+#define CP_FCCCH_CODE_RATE                     1
+#define CP_FCCCH_CODE_CHAN                     8
+
+/* Broadcast Index Parameters */
+#define CP_BCAST_INDEX                         3
+#define CP_NUM_BCCH_BCAST                      3
+#define CP_BCCH_CODE_CHAN                      7
+#define CP_BRAT                                2
+#define CP_BCCH_CODE_RATE                      1
+
+/* Quick Paging Channel Parameters */
+#define CP_NUM_QPCH                            2
+#define CP_QPCH_RATE                           1
+#define CP_QPCH_POWER_LEVEL_PAGE               3
+#define CP_QPCH_CCI_SUPPORTED                  1
+#define CP_QPCH_POWER_LEVEL_CONFIG             3
+#define CP_QPCH_CODE_CHAN                      8
+#define CP_QPCH_POWER_LEVEL_BCAST              3
+
+/* Reverse Power Control Parameters */
+#define CP_RLGAIN_TRAFFIC_PILOT                6
+#define CP_REV_POWER_CNTRL_DELAY               2
+#define CP_NUM_OPT_MSG                         4
+
+#define CP_ALT_BAND_CLASS                      5
+#define CP_CDMA_OFF_TIME_REP_THRESHOLD_UNIT    1
+#define CP_CDMA_OFF_TIME_REP_THRESHOLD         3
+/* Extended CDMA Channel List Parameters */
+#define CP_RC_QPCH_HASH_IND                    1
+#define CP_TD_MODE                             2
+#define CP_TD_HASH_IND                         1
+#define CP_TD_POWER_LEVEL                      2
+
+/**************************************************/
+/* Access Channel Message field width definitions */
+/**************************************************/
+
+/* fields used in general */
+#define CP_REG_TYPE_WIDTH               4
+#define CP_MOB_TERM_WIDTH               1
+#define CP_PILOTS_RESERVED_WIDTH        1
+#define CP_LAC_LENGTH_WIDTH             5
+
+#define CP_QOF_WIDTH                    2
+#define CP_WALSH_LENGTH_WIDTH           3
+
+
+
+/* Fields used by Origination message */
+#define CP_REQUEST_MODE_WIDTH           3
+#define CP_PM_WIDTH                     1
+#define CP_NAR_AN_CAP_WIDTH             1
+#define CP_DIGIT_MODE_WIDTH             1
+#define CP_NUMBER_TYPE_WIDTH            3
+#define CP_NUMBER_PLAN_WIDTH            4
+#define CP_MORE_FIELDS_WIDTH            1
+#define CP_NUM_ORIG_FIELDS_WIDTH        8
+#define CP_CHARI_4_WIDTH                4
+#define CP_CHARI_8_WIDTH                8
+#define CP_PACA_REORIG_WIDTH            1
+#define CP_MORE_RECORDS_WIDTH           1
+#define CP_ENCRYPTION_SUPPORTED_WIDTH   4
+#define CP_NUM_DIGITS_FIELDS_WIDTH      8
+#define CP_PACA_SUPPORTED_WIDTH         1
+#define CP_NUM_ALT_SO_WIDTH             3
+
+#define CP_DRS_WIDTH				    1
+#define CP_CH_IND_WIDTH				    2
+#define CP_SR_ID_WIDTH				    3
+#define CP_FOR_RC_PREF_WIDTH			5
+#define CP_REV_RC_PREF_WIDTH			5
+#define CP_FCH_SUPPORTED_WIDTH		    1
+#define CP_FCH_FRAME_SIZE_WIDTH		    1
+
+#define CP_RC_MAP_WIDTH                 3
+#define CP_RC_MAP_LEN_WIDTH             3
+
+#define CP_FOR_FCH_LEN_WIDTH			CP_RC_MAP_LEN_WIDTH
+#define CP_FOR_FCH_RC_MAP_WIDTH		    CP_RC_MAP_WIDTH
+#define CP_REV_FCH_LEN_WIDTH			CP_RC_MAP_LEN_WIDTH
+#define CP_REV_FCH_RC_MAP_WIDTH		    CP_RC_MAP_WIDTH
+
+#define CP_DCCH_SUPPORTED_WIDTH		    1
+#define CP_DCCH_FRAME_SIZE_WIDTH		2
+#define CP_FOR_DCCH_LEN_WIDTH			3
+#define CP_FOR_DCCH_RC_MAP_WIDTH	3
+#define CP_REV_DCCH_LEN_WIDTH			3
+#define CP_REV_DCCH_RC_MAP_WIDTH	3
+
+#define CP_REV_FCH_GATING_REQ_WIDTH		1
+#define CP_ORIG_REASON_WIDTH			1
+#define CP_ORIG_COUNT_WIDTH			    2
+#define CP_GLOBAL_EMERGENCY_CALL_WIDTH	1
+#define CP_MS_INIT_POS_LOC_IND_WIDTH 1
+#define CP_QOS_PARMS_INCL_WIDTH		    1
+#define CP_QOS_PARMS_LEN_WIDTH		    5
+#define CP_QOS_RESERVED_WIDTH			7
+#define CP_UI_ENCRYPT_REG_WIDTH		    1
+#define CP_SYNC_ID_INCL_WIDTH			1
+#define CP_SYNC_ID_WIDTH				16
+#define CP_PREV_SID_INCL_WIDTH			1
+#define CP_PREV_SID_WIDTH				15
+#define CP_PREV_NID_INCL_WIDTH			1
+#define CP_PREV_NID_WIDTH				16
+#define CP_PREV_PZID_INCL_WIDTH			1
+#define CP_PREV_PZID_WIDTH			    8
+#define CP_SO_BITMAP_IND_WIDTH			2
+#define CP_SO_GROUP_NUM_WIDTH			5
+#define CP_SO_BITMAP_WIDTH			    8
+#define CP_MSG_INTEGRITY_SUP_INCL_WIDTH   1
+#define CP_NUM_AUX_PILOTS_WIDTH     3
+
+#define CP_SDB_DESIRED_ONLY_WIDTH 1
+#define CP_ALT_BAND_CLASS_SUP_WIDTH 1
+
+#define CP_ACK_DELAY_WIDTH 1
+#define CP_NUM_ARQ_CHAN_WIDTH 2
+#define CP_FOR_PDCH_LEN_WIDTH 2
+#define CP_FOR_PDCH_RC_MAP_WIDTH 3
+#define CP_CH_CONFIG_SUP_MAP_LEN_WIDTH 2
+#define CP_CH_CONFIG_SUP_MAP_WIDTH 6
+
+/**************************************************/
+/*    Access Channel Message field definitions    */
+/**************************************************/
+
+#define MSG_TYPE_PD_00            0x00
+#define MSG_TYPE_PD_01            0x40
+    #define  MSG_TYPE_PD_10       0x80
+
+
+/************************************************/
+/*  General Extension message field definitions */
+/************************************************/
+#define CP_NUM_GE_REC_WIDTH           8
+#define CP_GE_REC_TYPE_WIDTH          8
+#define CP_GE_REC_LEN_WIDTH           8
+
+#define CP_FOR_SCH_DELAYED_ACK_MASK_WIDTH            3
+#define CP_REV_SCH_DELAYED_ACK_MASK_WIDTH            3
+
+/***********************************************************/
+/* Forward Traffic Channel Message field width definitions */
+/***********************************************************/
+
+
+/* Data Burst Message */
+#define CP_BURST_ADDR_LEN_WIDTH            4
+#define CP_MSG_NUMBER_WIDTH                8
+#define CP_BURST_TYPE_WIDTH                6
+#define CP_NUM_MSGS_WIDTH                  8
+#define CP_DATA_BURST_NUM_FIELDS_WIDTH     8
+#define CP_DATA_BURST_CHAR_WIDTH           8
+
+
+/* In-Traffic System Parameters Message */
+#define CP_EXTENSION_WIDTH                 1
+
+
+
+/* Retrieve Parameters Message */
+#define CP_PARAMETER_ID_WIDTH              16
+#define CP_RP_RSVD_FIELD_WIDTH             7
+#define CP_RETRIEVE_PARAMETERS_FIXED_FIELD_WIDTH \
+                        (CP_COMMON_FIELD_WIDTH + \
+             CP_RP_RSVD_FIELD_WIDTH)
+
+
+/* SSD Update Message */
+#define CP_RANDSSD_LEN                     7
+
+/* Status Request Message */
+#define CP_QUAL_INFO_TYPE_WIDTH            8
+#define CP_QUAL_INFO_LEN_WIDTH             3
+#define CP_OP_MODE_WIDTH                   8
+#define CP_SR_RSVD_FIELD_WIDTH             3
+#define CP_NUM_FIELDS_WIDTH                4
+
+/* Extended Handoff Direction Message */
+#define CP_SEARCH_INCLUDED_WIDTH           1
+#define CP_HARD_INCLUDED_WIDTH             1
+#define CP_PRIVATE_LCM_WIDTH               1
+#define CP_RESET_L2_WIDTH                  1
+#define CP_RESET_FPC_WIDTH                 1
+#define CP_SERV_NEG_TYPE_WIDTH             1
+#define CP_NUM_PREAMBLE_WIDTH              3
+#define CP_EXT_HO_DIR_ADD_LENGTH_WIDTH     3
+#define CP_PWR_COMB_IND_WIDTH              1
+#define CP_FOR_FUND_CODE_CHAN_WIDTH        8
+
+/* Global Handoff Direction Message */
+/* see also Extended Handoff Direction Message */
+#define CP_EXTRA_PARAMETERS_WIDTH          1
+#define CP_COMPLETE_SEARCH_WIDTH           1
+#define CP_PERIODIC_SEARCH_WIDTH           1
+#define CP_FOR_INCLUDED_WIDTH              1
+#define CP_FOR_SUP_CONFIG_WIDTH            2
+#define CP_NUM_FOR_SUP_WIDTH               3
+#define CP_USE_FOR_DURATION_WIDTH          1
+#define CP_FOR_DURATION_WIDTH              8
+#define CP_REV_INCLUDED_WIDTH              1
+#define CP_CLEAR_RETRY_DELAY_WIDTH         1
+#define CP_USE_REV_DURATION_WIDTH          1
+#define CP_REV_DURATION_WIDTH              8
+#define CP_NUM_REV_CODES_WIDTH             3
+#define CP_USE_T_ADD_ABORT_WIDTH           1
+#define CP_REV_PARMS_INCLUDED_WIDTH        1
+#define CP_T_MULCHAN_WIDTH                 3
+#define CP_BEGIN_PREAMBLE_WIDTH            3
+#define CP_RESUME_PREAMBLE_WIDTH           3
+
+#define CP_FPC_SUBCHAN_GAIN_WIDTH          5
+#define CP_USE_PC_TIME_WIDTH               1
+#define CP_PC_ACTION_TIME_WIDTH            6
+#define CP_RLGAIN_TRAFFIC_PILOT_WIDTH      6
+#define CP_DEFAULT_RLAG_WIDTH              1
+#define CP_NNSCR_INCLUDED_WIDTH            1
+#define CP_REV_FCH_GATING_MODE_WIDTH       1
+#define CP_REV_PWR_CNTL_DELAY_INCL_WIDTH   1
+#define CP_REV_PWR_CNTL_DELAY_WIDTH        2
+/* Universal Handoff Direction Message */
+/* see also Global Handoff Direction Message */
+#define CP_PARMS_INCL_WIDTH                1
+#define CP_NUM_FOR_ASSIGN_WIDTH            2
+#define CP_FOR_SCH_DURATION_WIDTH          4
+#define CP_FOR_START_TIME_INCL_WIDTH       1
+#define CP_SCCL_INDEX_WIDTH                4
+#define CP_NUM_REV_ASSIGN_WIDTH            2
+#define CP_REV_SCH_DURATION_WIDTH          4
+#define CP_REV_START_TIME_INCL_WIDTH       1
+#define CP_REV_SCH_RATE_WIDTH              4
+#define CP_UN_HO_DIR_NUM_PILOTS_WIDTH      3
+#define CP_ACTIVE_SET_REC_LEN_WIDTH        8
+#define CP_FOR_SCH_RATE_WIDTH              4
+#define CP_WALSH_ID_WIDTH                  1
+#define CP_SRCH_OFFSET_WIDTH               3
+#define CP_ADD_PILOT_REC_TYPE_WIDTH        3
+#define CP_ADD_PILOT_REC_LEN_WIDTH         3
+#define CP_CODE_CHAN_FCH_WIDTH             11
+#define CP_QOF_MASK_ID_FCH_WIDTH           2
+#define CP_CODE_CHAN_DCH_WIDTH             11
+#define CP_QOF_MASK_ID_DCH_WIDTH           2
+#define CP_NUM_SCH_WIDTH                   5
+#define CP_PILOT_INCL_WIDTH                1
+#define CP_CODE_CHAN_SCH_WIDTH             11
+#define CP_QOF_MASK_ID_SCH_WIDTH           2
+#define CP_NUM_HOD_FOR_SCH_WIDTH           5
+#define CP_NUM_HOD_REV_SCH_WIDTH           5
+#define CP_HOD_CH_IND_WIDTH                3
+#define CP_UHDM_NUM_FOR_SCH_WIDTH          5
+#define CP_UHDM_NUM_REV_SCH_WIDTH          5
+#define CP_UHDM_FOR_SCH_ID_WIDTH           1
+#define CP_UHDM_REV_SCH_ID_WIDTH           1
+
+#define CP_T_SLOTTED_INCL_WIDTH            1
+#define CP_T_SLOTTED_WIDTH                 8
+#define CP_ENC_SUPPORTED_WIDTH             1
+
+#define CP_SERVICE_INCLUDED_WIDTH          1
+#define CP_SERV_CON_SEQ_WIDTH              3
+#define CP_SUP_CHAN_PARMS_INCLUDED_WIDTH   1
+#define CP_USE_PWR_CNTL_STEP_WIDTH         1
+#define CP_PWR_CNTL_STEP_WIDTH             3
+#define CP_GEN_HO_DIR_NUM_PILOTS_WIDTH     3
+#define CP_FPC_SEC_CHAN_WIDTH           1
+#define CP_NUM_SUP_CH_WIDTH             2
+#define CP_FPC_SCH_FER_WIDTH            5
+#define CP_FPC_SCH_MIN_SETPT_WIDTH      8
+#define CP_FPC_SCH_MAX_SETPT_WIDTH      8
+#define CP_FPC_THRESH_INCL_WIDTH        1
+#define CP_FPC_SETPT_THRESH_WIDTH       8
+#define CP_FPC_THRESH_SCH_INCL_WIDTH    1
+#define CP_FPC_SETPT_THRESH_SCH_WIDTH   8
+#define CP_1_BIT_WIDTH                  1
+#define CP_2_BITS_WIDTH                 2
+#define CP_3_BITS_WIDTH                 3
+#define CP_4_BITS_WIDTH                 4
+#define CP_5_BITS_WIDTH                 5
+#define CP_6_BITS_WIDTH                 6
+#define CP_7_BITS_WIDTH                 7
+#define CP_8_BITS_WIDTH                 8
+#define CP_FOR_SUP_INCLUDED_WIDTH          1
+#define CP_EXPL_CODE_CHAN_WIDTH            1
+#define CP_BASE_CODE_CHAN_WIDTH            8
+#define CP_FOR_SUP_CODE_CHAN_WIDTH         8
+
+#define CP_MUHDM_PLCM_TYPE_INCL_WIDTH   1
+#define CP_MUHDM_PLCM_TYPE_WIDTH        4
+#define CP_MUHDM_PLCM_39_WIDTH          39
+
+/* Supplemental Channel Assignment Message */
+#define CP_USE_RETRY_DELAY_WIDTH           1
+#define CP_RETRY_DELAY_WIDTH               8
+#define CP_REV_DTX_DURATION_WIDTH          4
+#define CP_EXPL_REV_START_TIME_WIDTH       1
+#define CP_REV_START_TIME_WIDTH            6
+#define CP_USE_REV_HDM_SEQ_WIDTH           1
+#define CP_REV_LINKED_HDM_SEQ_WIDTH        2
+#define CP_USE_SCRM_SEQ_NUM_WIDTH          1
+#define CP_SCRM_SEQ_NUM_WIDTH              4
+#define CP_EXPL_FOR_START_TIME_WIDTH       1
+#define CP_FOR_START_TIME_WIDTH            6
+#define CP_USE_FOR_HDM_SEQ_WIDTH           1
+#define CP_FOR_LINKED_HDM_SEQ_WIDTH        2
+#define CP_NUM_SUP_PILOTS_WIDTH            3
+#define CP_NUM_SUP_WIDTH                   3
+#define CP_SUP_CODE_CHAN_WIDTH             8
+
+/* Extended Supplemental Channel Assignment Message */
+#define CP_START_TIME_UNIT_WIDTH           3
+#define CP_REV_SCH_DTX_DURATION_WIDTH      4
+
+#define CP_NUM_REV_CFG_RECS_WIDTH          5
+
+#define CP_ESCAM_REV_SCH_ID_WIDTH          1
+#define CP_REV_WALSH_ID_WIDTH              1
+#define CP_REV_SCH_START_TIME_WIDTH        5
+
+#define CP_FOR_SCH_FER_REP_WIDTH           1
+#define CP_NUM_FOR_CFG_RECS_WIDTH          5
+
+#define CP_ESCAM_FOR_SCH_ID_WIDTH          1
+#define CP_FOR_SCH_RATE                    4
+#define CP_NUM_SUP_SHO_WIDTH               3
+
+#define CP_ACTIVE_PILOT_REC_TYPE_WIDTH     3
+#define CP_PILOT_RECORD_LEN_WIDTH          3
+#define CP_FOR_SCH_CC_INDEX_WIDTH          11
+
+#define CP_FOR_SCH_START_TIME_WIDTH        5
+
+#define CP_FPC_MODE_SCH_WIDTH              3
+#define CP_FPC_SCH_INIT_SETPT_OP_WIDTH     1
+
+#define CP_ESCAM_NUM_SUP_WIDTH             2
+
+#define CP_FPC_SCH_INIT_SETPT_WIDTH        8
+
+#define CP_RPC_NUM_SUP_WIDTH               1
+
+#define CP_RLGAIN_SCH_PILOT_WIDTH          6
+
+/* BCY 03/15/01 */
+/* Extended Release Message */
+#define CP_TRAFFIC_CH_IND_WIDTH            3
+
+
+#ifdef MTK_DEV_C2K_IRAT
+/* Alternative Technologies Information Message*/
+#define CP_NUM_RADIO_INTERFACE_WIDTH                 4
+#define CP_RADIO_INTERFACE_TYPE_WIDTH                4
+#define CP_RADIO_INTERFACE_LEN_WIDTH                 10
+#define CP_PRIORITY_INCL_WIDTH                       1
+#define CP_SERVING_PRIORITY_WIDTH                    3
+#define CP_THRESH_SERVING_WIDTH                      6
+#define CP_PER_EARFCN_PARM_INCL_WIDTH                1
+#define CP_RX_LEV_MIN_EUTRA_COMMON_WIDTH             7
+#define CP_PE_MAX_COMMON_WIDTH                       6
+#define CP_RX_LEV_MIN_EUTRA_OFFSET_COMMON_INCL_WIDTH 1
+#define CP_RX_LEV_MIN_EUTRA_OFFSET_COMMON_WIDTH      3
+#define CP_MAX_RESEL_TIMER_INCL_WIDTH                1
+#define CP_MAX_RESEL_TIMER_WIDTH                     4
+#define CP_SRCH_BACKOFF_TIMER_INCL_WIDTH             1
+#define CP_MIN_MEAS_BACKOFF_WIDTH                    4
+#define CP_MAX_MAES_BACKOFF_WIDTH                    4
+#define CP_PLMINID_INCL_WIDTH                        1
+#define CP_NUM_EUTRA_FREQ_WIDTH                      3
+#define CP_EARFCN_WIDTH                              16
+#define CP_EARFCN_PRI_WIDTH                          3
+#define CP_THRESHX_WIDTH                             5
+#define CP_RX_LEV_MIN_EUTRA_WIDTH                    7
+#define CP_PE_MAX_WIDTH                              6
+#define CP_RX_REV_MIN_EUTRA_OFFSET_INCL_WIDTH        1
+#define CP_RX_REV_MIN_EUTRA_OFFSET_WIDTH             3
+#define CP_MEAS_BANDWIDTH_WIDTH                      3
+#define CP_PLMN_SAME_AS_PREVIOUS_CH_WIDTH            1
+#define CP_NUM_PLMNID_WIDTH                          3
+#define CP_PLMNID_WIDTH                              24
+#endif /* MTK_DEV_C2K_IRAT */
+
+/* Power Control Message */
+
+/* Candidate Frequency Search Request Message */
+#define CP_CAND_FREQ_SEARCH_REQ_RSVD1_WIDTH       4
+#define CP_CFSRM_SEQ_WIDTH                        2
+#define CP_SEARCH_TYPE_WIDTH                      2
+#define CP_SEARCH_PERIOD_WIDTH                    4
+#define CP_SEARCH_MODE_WIDTH                      4
+#define CP_MODE_SPECIFIC_LEN_WIDTH                8
+#define CP_ALIGN_TIMING_WIDTH                     1
+#define CP_SEARCH_OFFSET_WIDTH                    6
+/* Candidate Frequency Search Mode - Multiple CDMA Pilots  */
+#define CP_SF_SF_TOTAL_EC_THRESH_WIDTH            5
+#define CP_SF_SF_TOTAL_EC_IO_THRESH_WIDTH         5
+#define CP_DIFF_RX_PWR_THRESH_WIDTH               5
+#define CP_MIN_TOTAL_PILOT_EC_IO_WIDTH            5
+#define CP_CF_T_ADD_WIDTH                         6
+#define CP_CF_WAIT_TIME_WIDTH                     4
+#define CP_CAND_FREQ_SEARCH_REQ_RSVD2_WIDTH       5
+#define CP_PILOT_UPDATE_WIDTH                     1
+#define CP_CF_SRCH_MULT_CDMA_PILOTS_FIXED_WIDTH         \
+                (CP_BAND_CLASS_WIDTH                  + \
+                 CP_CDMA_FREQ_WIDTH                   + \
+                 CP_SF_RX_PWR_THRESH_WIDTH            + \
+                 CP_DIFF_RX_PWR_THRESH_WIDTH          + \
+                 CP_MIN_TOTAL_PILOT_EC_IO_WIDTH       + \
+                 CP_CF_T_ADD_WIDTH                    + \
+                 CP_CF_WAIT_TIME_WIDTH                + \
+                 CP_PILOT_INC_WIDTH                + \
+                 CP_SRCH_WIN_N_WIDTH               + \
+                 CP_SRCH_WIN_R_WIDTH               + \
+                 CP_CAND_FREQ_SEARCH_REQ_RSVD2_WIDTH  + \
+                 CP_PILOT_UPDATE_WIDTH)
+#define CP_CFSR_NUM_PILOTS_WIDTH                  6
+#define CP_CF_NGHBR_SRCH_MODE_WIDTH               2
+#define CP_SEARCH_SET_WIDTH                       1
+#define CP_CF_PILOT_REC_WIDTH                           \
+                (CP_NGHBR_PN_WIDTH                    + \
+                 CP_SEARCH_SET_WIDTH                  + \
+                 CP_SEARCH_PRIORITY_WIDTH             + \
+                 CP_SRCH_WIN_NGHBR_WIDTH)
+#define CP_CF_SRCH_OFFSET_INCL_WIDTH              1
+/* Candidate Frequency Search Mode - Analog Channels on Multiple frequencies */
+#define CP_CAND_FREQ_SEARCH_REQ_RSVD4_WIDTH       3
+#define CP_NUM_ANALOG_FREQS_WIDTH                 3
+#define CP_CF_SRCH_MULT_ANALOG_CHANS_FIXED_WIDTH        \
+                (CP_BAND_CLASS_WIDTH                  + \
+                 CP_SF_RX_PWR_THRESH_WIDTH            + \
+                 CP_CAND_FREQ_SEARCH_REQ_RSVD4_WIDTH  + \
+                 CP_NUM_ANALOG_FREQS_WIDTH)
+
+/* Candidate Frequency Search Control Message */
+#define CP_CFSCM_SEQ_WIDTH                 2
+
+
+/* Power Up Function Message */
+#define CP_ACTION_TIME_FRAME_WIDTH         2
+#define CP_PUF_SETUP_SIZE_WIDTH            6
+#define CP_PUF_PULSE_SIZE_WIDTH            7
+#define CP_PUF_INTERVAL_WIDTH              10
+#define CP_PUF_INIT_PWR_WIDTH              6
+#define CP_PUF_PWR_STEP_WIDTH              5
+#define CP_TOTAL_PUF_PROBES_WIDTH          4
+#define CP_MAX_PWR_PUF_WIDTH               4
+#define CP_PUF_FREQ_INCL_WIDTH             1
+
+/* Power Up Function Completion Message */
+#define CP_PWR_UP_FUNC_COMP_RSVD_WIDTH     6
+#define CP_LOC_IND_WIDTH                   1
+#define CP_PWR_UP_FUNC_COMP_RSVD1_WIDTH    3
+#define CP_MS_LAT_WIDTH                    22
+#define CP_MS_LONG_WIDTH                   23
+#define CP_MS_LOC_TSTAMP                   24
+
+/***************************************************************************/
+/********* Reverse Traffic Channel Message field width definitions *********/
+/***************************************************************************/
+/* RTC Order Message */
+#define CP_RTC_ORDER_RSVD_WIDTH            6
+
+#define CP_RTC_CON_REF_INCL_WIDTH          1
+#define CP_RTC_CON_REF_WIDTH               8
+
+#define CP_RTC_ORDER_FIXED_FIELD_WIDTH \
+                    (CP_COMMON_FIELD_WIDTH + \
+             CP_ORDER_WIDTH + \
+             CP_ADD_RECORD_LEN_WIDTH)
+
+#define CP_TC_ACK_ORDER_LENGTH_BYTES       7
+
+/* Base Station Challenge Order */
+#define BS_CHALLENGE_ADD_REC_LEN           5
+
+/* Service Option Request/Response Order */
+#define CP_SERVICE_OPTION_ADD_REC_LEN             3
+
+/* Mobile Station Reject Order */
+#define CP_REJECTED_TYPE_WIDTH                    8
+#define CP_REJECTED_ORDER_WIDTH                   8
+#define CP_REJECTED_ODRQ_WIDTH                    8
+#define CP_REJECTED_PARAM_ID_WIDTH                16
+#define CP_REJECTED_RECORD_WIDTH                  8
+#define CP_REJECTED_TAG_WIDTH                     4
+#define CP_REJECTED_PDU_TYPE_WIDTH                2
+#define CP_MS_REJECT_REJ_CON_REF_REC_LEN          3
+#define CP_MS_REJECT_REJ_TAG_REC_LEN              4
+#define CP_MS_REJECT_REJ_MSG_ADD_REC_LEN          3
+#define CP_MS_REJECT_REJ_ORDER_ADD_REC_LEN        5
+#define CP_MS_REJECT_REJ_PARAM_ADD_REC_LEN        5
+#define CP_MS_REJECT_REJ_RECORD_ADD_REC_LEN       3
+
+/* Authentication Challenge Response Message */
+#define CP_AUTH_CHAL_RESP_RSVD_WIDTH              5
+
+
+/* Flash With Info Message */
+#define CP_RTC_FLASH_WITH_INFO_RSVD_WIDTH         7
+
+
+/* Data Burst Message */
+#define CP_DATA_BURST_RSVD_WIDTH                  1
+
+
+/* Pilot Strength Measurement Message */
+#define CP_KEEP_WIDTH                             1
+
+
+/* Power Measurement Report Message */
+#define CP_ERRORS_DETECTED_WIDTH                  5
+#define CP_PWR_MEAS_FRAMES_WIDTH                  10
+#define CP_LAST_HDM_SEQ_WIDTH                     2
+#define CP_SF_RX_PWR_THRESH_WIDTH                 5
+#define CP_PWR_MEAS_REP_NUM_PILOTS_WIDTH          4
+#define CP_DCCH_PWR_MEAS_INCL_WIDTH               1
+#define CP_DCCH_PWR_MEAS_FRAMES_WIDTH             10
+#define CP_DCCH_ERRORS_DETECTED_WIDTH             5
+#define CP_PMRM_SCH_PWR_MEAS_INCL_WIDTH           1
+#define CP_PMRM_SCH_ID_WIDTH                      1
+#define CP_SCH_ERRORS_DETECTED_WIDTH              10
+#define CP_SCH_PWR_MEAS_FRAMES_WIDTH              16
+#define CP_PILOT_REC_INCL_WIDTH                                         1
+#define CP_SETPT_INCL_WIDTH                                                 1
+#define CP_REF_PILOT_REC_INCL_WIDTH                                 1
+#define CP_RESQ_IND_INCL_WIDTH                                          1
+
+#define CP_FCH_INCL_WIDTH                         1
+#define CP_FPC_FCH_CURR_SETPT_WIDTH               8
+#define CP_DCCH_INCL_WIDTH                        1
+#define CP_FPC_DCCH_CURR_SETPT_WIDTH              8
+#define CP_FPC_SCH_CURR_SETPT_WIDTH               8
+
+/* Origination Continuation Message */
+#define CP_ASCII_DTMF_DIGIT_WIDTH                 8
+/* A. Kulkarni. 09/25/01. */
+#define CP_DTMF_DIGIT_WIDTH                       4
+/* A. Kulkarni. End. */
+
+/* Parameters Response Message */
+#define CP_PARAMETER_LEN_WIDTH                    10
+
+/* Status Response Message */
+#define CP_SR_QIT_NONE_LENGTH                     0
+#define CP_SR_QIT_BAND_CLASS_LENGTH               1
+#define CP_SR_QIT_BAND_CLASS_AND_OP_MODE_LENGTH   2
+#define CP_SR_RESERVED_WIDTH                      3
+#define CP_TC_SR_RESERVED_WIDTH                   4
+#define CP_NUM_INFO_RECORDS_WIDTH                 4
+#define CP_BAND_CLASS_BIT_FIELD_WIDTH             1
+
+
+/* Capability Information Record                 */
+#define CP_GATING_RATE_SET_WIDTH                  2
+#define CP_RLP_CAP_BLOP_LEN_WIDTH                 3
+#define CP_MAX_MS_NAK_ROUNDS_FWD_WIDTH            3
+#define CP_MAX_MS_NAK_ROUNDS_REV_WIDTH            3
+
+/* Ch Configuration Capability Information Record*/
+#define CP_FOR_SCH_LEN                            3
+#define CP_FOR_SCH_RC_MAP                         3
+#define CP_FOR_SCH_NUM                            2
+#define CP_REV_SCH_LEN                            3
+#define CP_REV_SCH_RC_MAP                         3
+#define CP_REV_SCH_NUM                            2
+#define CP_MAX_TURBO_BLOCK_SIZE_WIDTH             4
+#define CP_MAX_CONV_BLOCK_SIZE_WIDTH              4
+#define CP_FOR_MAX_RATE_WIDTH                     4
+#define CP_FOR_MAX_RATE                           4
+#define CP_REV_MAX_RATE_WIDTH                     4
+#define CP_REV_MAX_RATE                           4
+
+/* Extended Multiplex Option Information Record  */
+#define CP_NUM_MO_FCH_WIDTH                       4
+#define CP_MO_FCH_WIDTH                          16
+#define CP_RATES_FCH_WIDTH                        8
+
+#define CP_NUM_MO_DCCH_WIDTH                      4
+#define CP_MO_DCCH_WIDTH                         16
+
+#define CP_NUM_MO_SCH_WIDTH                       4
+#define CP_SCH_ID_WIDTH                           1
+#define CP_MO_SCH_WIDTH                          16
+#define CP_GEO_LOC_WIDTH                          3
+
+#define CP_NUM_MO_FOR_PDCH_WIDTH                  4
+#define CP_NUM_MO_FOR_PDCH                        1
+#define CP_MO_PDCH_WIDTH                         16
+
+/* TMSI Assignment Completion Message */
+#define CP_TMSI_ASSIGN_COMP_RSVD_WIDTH            7
+
+
+/* Supplemental Channel Request Message */
+#define CP_SIZE_OF_REQ_BLOB_WIDTH                 4
+#define CP_DURATION_UNIT_WIDTH                    3
+#define CP_NUM_REQ_WIDTH                          3
+#define CP_SCRM_RESERVED_WIDTH                    2
+#define CP_PREFERRED_RATE_WIDTH                   4
+#define CP_DURATION_WIDTH                         9
+#define CP_REF_PN_WIDTH                           9
+#define CP_NUM_ACT_PN_WIDTH                       3
+#define CP_ACT_PN_PHASE_WIDTH                     15
+#define CP_ACT_PILOT_STRENGTH_WIDTH               6
+#define CP_NUM_NGHBR_PN_WIDTH                     3
+#define CP_PILOT_REC_TYPE_WIDTH                   3
+
+/* Candidate Frequency Search Response Message */
+#define CP_TOTAL_OFF_TIME_FWD_WIDTH               6
+#define CP_MAX_OFF_TIME_FWD_WIDTH                 6
+#define CP_TOTAL_OFF_TIME_REV_WIDTH               6
+#define CP_MAX_OFF_TIME_REV_WIDTH                 6
+#define CP_PCG_OFF_TIMES_WIDTH                    1
+#define CP_ALIGN_TIMING_USED_WIDTH                1
+#define CP_MAX_NUM_VISITS_WIDTH                   5
+
+/* Candidate Frequency Search Report Message */
+#define CP_LAST_SRCH_MSG_WIDTH                    1
+#define CP_CAND_FREQ_SRCH_REPORT_FIXED_FIELD_WIDTH  \
+                (CP_COMMON_FIELD_WIDTH  + \
+                         CP_LAST_SRCH_MSG_WIDTH + \
+                 CP_CFSRM_SEQ_WIDTH     + \
+                 CP_SEARCH_MODE_WIDTH   + \
+                         CP_MODE_SPECIFIC_LEN_WIDTH)
+#if ((CP_CAND_FREQ_SRCH_REPORT_FIXED_FIELD_WIDTH%8) != 0)
+#error "CAND_FREQ_SRCH_REPORT_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+/* Candidate Frequency Search Mode - Multiple CDMA Pilots  */
+#define CP_SF_TOTAL_RX_PWR_WIDTH                  5
+#define CP_CF_TOTAL_RX_PWR_WIDTH                  5
+#define CP_CAND_FREQ_SRCH_REPORT_RSVD1_WIDTH      1
+#define CP_CAND_FREQ_SRCH_REPORT_RSVD2_WIDTH      3
+/* Candidate Frequency Search Mode - Analog Channels on Multiple frequencies */
+#define CP_CAND_FREQ_SRCH_REPORT_RSVD3_WIDTH      5
+#define CP_SIGNAL_STRENGTH_WIDTH                  6
+
+/* Resource Release Request Message */
+#define CP_GATING_DISCONNECT_IND_WIDTH            1
+
+
+/****************************************************************************/
+/*  (FCCCH) Forward Common Control Channel Message field width definitions  */
+/****************************************************************************/
+#define CP_FCCCH_PD_WIDTH        2
+#define CP_FCCCH_MSG_ID_WIDTH     6
+#define CP_FCCCH_MSG_TYPE_WIDTH  CP_FCCCH_PD_WIDTH +  CP_FCCCH_MSG_ID_WIDTH /* MSG_TYPE = PD 2 bit and MSG_ID 6 bit */
+
+
+
+/****************************************************************************/
+/*  (BCCH) Forward Common Control Channel Message field width definitions   */
+/****************************************************************************/
+#define CP_BCCH_PD_WIDTH         2
+#define CP_BCCH_MSG_ID_WIDTH     6
+#define CP_BCCH_MSG_TYPE_WIDTH   CP_BCCH_PD_WIDTH +  CP_BCCH_MSG_ID_WIDTH /* MSG_TYPE = PD 2 bit and MSG_ID 6 bit */
+
+
+
+/****************************************************************************/
+/********************************* Orders ***********************************/
+/****************************************************************************/
+
+/* FTC Base Station Challenge Confirmation Order */
+#define CP_AUTHBS_OFFSET \
+                      (CP_COMMON_FIELD_WIDTH    + \
+                       CP_USE_TIME_WIDTH        + \
+                       CP_ACTION_TIME_WIDTH     + \
+                               CP_ORDER_WIDTH           + \
+                               CP_ADD_RECORD_LEN_WIDTH  + \
+                       CP_ORDQ_WIDTH)
+#define CP_BS_CHALLENGE_CONF_ORDER_RSVD_WIDTH     6
+
+/* FTC Service Option Request Order */
+/* FTC Service Option Response Order */
+#define CP_SERVICE_OPTION_OFFSET \
+                      (CP_COMMON_FIELD_WIDTH    + \
+                       CP_USE_TIME_WIDTH        + \
+                       CP_ACTION_TIME_WIDTH     + \
+                               CP_ORDER_WIDTH           + \
+                               CP_ADD_RECORD_LEN_WIDTH  + \
+                       CP_ORDQ_WIDTH)
+
+/* FTC Retry Order */
+#define CP_RETRY_ORDER_OFFSET \
+                      (CP_USE_TIME_WIDTH        + \
+                       CP_ACTION_TIME_WIDTH     + \
+                       CP_ORDER_WIDTH           + \
+                       CP_ADD_RECORD_LEN_WIDTH  + \
+                       CP_ORDQ_WIDTH)
+
+/****************************************************************************/
+/********************************* Records **********************************/
+/****************************************************************************/
+
+/* Forward Record field width definitions */
+
+/* Called Party Number Record */
+#define CP_CALLED_PARTY_NUMBER_REC_RSVD_FIELD_WIDTH     1
+
+#define CP_CALLED_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH \
+                (CP_NUMBER_TYPE_WIDTH + \
+         CP_NUMBER_PLAN_WIDTH + \
+                 CP_CALLED_PARTY_NUMBER_REC_RSVD_FIELD_WIDTH)
+#if ((CP_CALLED_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_CALLED_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+
+/* Calling Party Number Record */
+#define CP_PI_WIDTH  2
+#define CP_SI_WIDTH  2
+#define CP_CALLING_PARTY_NUMBER_REC_RSVD_FIELD_WIDTH     5
+
+#define CP_CALLING_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH \
+                (CP_NUMBER_TYPE_WIDTH + \
+         CP_NUMBER_PLAN_WIDTH + \
+                 CP_PI_WIDTH + \
+                 CP_SI_WIDTH + \
+                 CP_CALLING_PARTY_NUMBER_REC_RSVD_FIELD_WIDTH)
+#if ((CP_CALLING_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_CALLING_PARTY_NUMBER_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+
+/* Signal Record */
+#define CP_SIGNAL_TYPE_WIDTH               2
+#define CP_SIGNAL_PITCH_WIDTH              2
+#define CP_SIGNAL_SIGNAL_WIDTH             6
+#define CP_SIGNAL_REC_RSVD_FIELD_WIDTH     6
+
+#define CP_SIGNAL_REC_FIXED_FIELD_WIDTH \
+                (CP_SIGNAL_TYPE_WIDTH + \
+                 CP_SIGNAL_PITCH_WIDTH + \
+                 CP_SIGNAL_SIGNAL_WIDTH + \
+                 CP_SIGNAL_REC_RSVD_FIELD_WIDTH)
+#if ((CP_SIGNAL_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SIGNAL_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Signal Record */
+#define CP_MSG_COUNT_WIDTH  8
+
+/* Service Configuration Record */
+#define CP_FOR_MUX_OPTION_WIDTH                 16
+#define CP_REV_MUX_OPTION_WIDTH                 16
+#define CP_FOR_NUM_BITS_WIDTH                   8
+#define CP_REV_NUM_BITS_WIDTH                   8
+
+/* Forward Fundamental Channel */
+#define CP_FPC_INCL_WIDTH                       1
+#define CP_FPC_PRI_CHAN_WIDTH                   1
+#define CP_FPC_MODE_WIDTH                       3
+#define CP_FPC_OLPC_FCH_INCL_WIDTH              1
+#define CP_FPC_FCH_FER_WIDTH                    5
+#define CP_FPC_FCH_MIN_SET_PT_WIDTH             8
+#define CP_FPC_FCH_MAX_SET_PT_WIDTH             8
+#define CP_GATING_RATE_INCL_WIDTH               1
+#define CP_PILOT_GATING_RATE_WIDTH              2
+
+#define CP_FOR_SCH_INCL_WIDTH                   1
+#define CP_NUM_FOR_SCH_WIDTH                    2
+#define CP_FOR_SCH_ID_WIDTH                     2
+#define CP_FOR_SCH_FRAME_OFFSET_WIDTH           2
+#define CP_REV_SCH_INCL_WIDTH                   1
+#define CP_NUM_REV_SCH_WIDTH                    2
+#define CP_REV_SCH_ID_WIDTH                     2
+#define CP_REV_SCH_FRAME_OFFSET_WIDTH           2
+#define CP_LOGICAL_RESOURCE_WIDTH               4
+#define CP_PHYSICAL_RESOURCE_WIDTH              4
+#define CP_FORWARD_FLAG_WIDTH                   1
+#define CP_REVERSE_FLAG_WIDTH                   1
+#define CP_PRIORITY_WIDTH                       4
+#define CP_LPM_IND_WIDTH                        2
+#define CP_NUM_LPM_ENTRIES_WIDTH                4
+#define CP_IS2K_REV0_RESERVED_WIDTH             2
+
+#define CP_FCH_CC_INCL_WIDTH                    1
+
+#define CP_FOR_FCH_RC_WIDTH                     5
+#define CP_REV_FCH_RC_WIDTH                     5
+
+/* Dedicated Control Channel */
+#define CP_DCCH_CC_INCL_WIDTH                   1
+#define CP_FOR_SCH_CC_INCL_WIDTH                1
+#define CP_REV_SCH_CC_INCL_WIDTH                1
+
+#define CP_DCCH_FCH_RC_WIDTH                    5
+#define CP_DCCH_REV_RC_WIDTH                    5
+
+#define CP_FPC_OLPC_DCCH_INCL_WIDTH             1
+#define CP_FPC_DCCH_FER_WIDTH                   5
+#define CP_FPC_DCCH_MIN_SET_PT_WIDTH            8
+#define CP_FPC_DCCH_MAX_SET_PT_WIDTH            8
+#define CP_FOR_RATES_WIDTH                      8
+#define CP_REV_RATES_WIDTH                      8
+#define CP_NUM_CON_REC_WIDTH                    8
+#define CP_SERVICE_CONNECTION_RECORD_LEN_WIDTH  8
+#define CP_UI_ENCRYPT_MODE_WIDTH                3
+#define CP_RLP_INFO_INCL_WIDTH	                1
+#define CP_RLP_BLOB_LEN_WIDTH	                4
+#define CP_CON_REF_WIDTH                        8
+#define CP_FOR_TRAFFIC_WIDTH                    4
+#define CP_REV_TRAFFIC_WIDTH                    4
+#define CP_FOR_DCCH_RC_WIDTH                    5
+#define CP_REV_DCCH_RC_WIDTH                    5
+
+#define CP_SERVICE_CONFIGURATION_REC_FIXED_FIELD_WIDTH \
+                (CP_FOR_MUX_OPTION_WIDTH + \
+                 CP_REV_MUX_OPTION_WIDTH + \
+                 CP_FOR_RATES_WIDTH + \
+                 CP_REV_RATES_WIDTH + \
+                 CP_NUM_CON_REC_WIDTH)
+#if ((CP_SERVICE_CONFIGURATION_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SERVICE_CONFIGURATION_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* T53 National Supplementary Services */
+#define CP_NSS_RECORD_SUBTYPE_WIDTH 6
+#define CP_NSS_REC_FIXED_FIELD_WIDTH \
+                (CP_MCC_WIDTH + \
+                 CP_NSS_RECORD_SUBTYPE_WIDTH)
+#if ((CP_NSS_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_NSS_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+#define CP_NSS_CLIR_CAUSE_WIDTH 8
+#define CP_NSS_CLIR_REC_FIXED_FIELD_WIDTH \
+              (CP_NSS_REC_FIXED_FIELD_WIDTH + \
+               CP_NSS_CLIR_CAUSE_WIDTH)
+#if ((CP_NSS_CLIR_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_NSS_CLIR_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+#define CP_NSS_AUDIO_CONTROL_WIDTH         2
+#define CP_AUDIO_CONTROL_RSVD_FIELD_WIDTH  4
+#define CP_NSS_AUDIO_CONTROL_REC_FIXED_FIELD_WIDTH \
+              (CP_NSS_REC_FIXED_FIELD_WIDTH + \
+               CP_NSS_AUDIO_CONTROL_WIDTH   + \
+               CP_NSS_AUDIO_CONTROL_WIDTH   + \
+               CP_AUDIO_CONTROL_RSVD_FIELD_WIDTH)
+#if ((CP_NSS_AUDIO_CONTROL_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_NSS_AUDIO_CONTROL_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Reverse Record field width definitions */
+/* BCY 04/30/01 */
+/* Supplemental Channel Type-specific fields */
+#define CP_SCH_REC_LEN_WIDTH                   4
+#define CP_SCH_RC_WIDTH                        5
+#define CP_CODING_WIDTH                        1
+#define CP_SCH_REC_RESERVED_WIDTH              6
+#define CP_FOR_SCH_MUX_WIDTH                   16
+#define CP_REV_SCH_MUX_WIDTH                   16
+
+/* RLP BLOB fields */
+#define CP_RLP_BLOB_TYPE_WIDTH                 3
+#define CP_RLP_VERSION_WIDTH                   3
+#define CP_RLP_RTT_WIDTH                       4
+#define CP_RLP_INIT_VAR_WIDTH                  1
+#define CP_RLP_BS_EXT_SEQ_M_WIDTH              18
+#define CP_RLP_MS_EXT_SEQ_M_WIDTH              18
+#define CP_RLP_MAX_MS_NAK_ROUNDS_FWD_WIDTH     3
+#define CP_RLP_MAX_MS_NAK_ROUNDS_REV_WIDTH     3
+#define CP_RLP_NAK_ROUNDS_FWD_WIDTH            3
+#define CP_RLP_NAK_ROUNDS_REV_WIDTH            3
+#define CP_RLP_NAK_PER_ROUND_FWD_WIDTH         3
+#define CP_RLP_NAK_PER_ROUND_REV_WIDTH         3
+#define CP_RLP_NAK_DDW_WIDTH                          8
+#define CP_RLP_NAK_REXMIT_TIMER_WIDTH            8
+
+
+/* Meter Pulses Record */
+#define CP_PULSE_FREQUENCY_WIDTH              11
+#define CP_PULSE_ON_OFF_TIME_WIDTH            8
+#define CP_PULSE_COUNT_WIDTH                  4
+#define CP_METER_PULSES_REC_RSVD_FIELD_WIDTH  1
+#define CP_METER_PULSES_REC_FIXED_FIELD_WIDTH \
+          ( CP_PULSE_FREQUENCY_WIDTH + \
+            CP_PULSE_ON_OFF_TIME_WIDTH + \
+            CP_PULSE_ON_OFF_TIME_WIDTH + \
+            CP_PULSE_COUNT_WIDTH + \
+            CP_METER_PULSES_REC_RSVD_FIELD_WIDTH )
+
+
+/* Parametric Alerting Record */
+#define CP_CADENCE_COUNT_WIDTH                8
+#define CP_NUM_GROUPS_WIDTH                   4
+#define CP_AMPLITUDE_WIDTH                    8
+#define CP_FREQ_WIDTH                         10
+#define CP_ON_OFF_TIME_WIDTH                  8
+#define CP_REPEAT_WIDTH                       4
+#define CP_DELAY_WIDTH                        8
+#define CP_PARAMETRIC_ALERTING_REC_RSVD_FIELD_WIDTH  4
+#define CP_PARAMETRIC_ALERTING_REC_FIXED_FIELD_WIDTH \
+          ( CP_CADENCE_COUNT_WIDTH + \
+            CP_NUM_GROUPS_WIDTH + \
+            CP_PARAMETRIC_ALERTING_REC_RSVD_FIELD_WIDTH )
+
+/* Line Control Record */
+#define CP_POLARITY_INCLUDED_WIDTH            1
+#define CP_TOGGLE_MODE_WIDTH                  1
+#define CP_REVERSE_POLARITY_WIDTH             1
+#define CP_POWER_DENIAL_TIME_WIDTH            8
+#define CP_LINE_CONTROL_REC_FIXED_FIELD_WIDTH \
+          ( CP_POLARITY_INCLUDED_WIDTH + \
+            CP_POWER_DENIAL_TIME_WIDTH + \
+            7 )    /* RESERVED */        /* minimum size of the record */
+
+/* Extended Display Record */
+#define CP_EXT_DISPLAY_IND_WIDTH              1
+#define CP_DISPLAY_TYPE_WIDTH                 7
+#define CP_DISPLAY_TAG_WIDTH                  8
+#define CP_DISPLAY_LEN_WIDTH                  8
+#define CP_EXTENDED_DISPLAY_REC_FIXED_FIELD_WIDTH \
+          ( CP_EXT_DISPLAY_IND_WIDTH + \
+            CP_DISPLAY_TYPE_WIDTH + \
+            CP_DISPLAY_TAG_WIDTH + \
+            CP_DISPLAY_LEN_WIDTH )       /* minimum size of the record */
+
+
+/* Redirecting Number Record */
+#define CP_EXTENSION_BIT_1_WIDTH              1
+                            /* CP_NUMBER_TYPE_WIDTH and CP_NUMBER_PLAN_WIDTH */
+                            /* declared in Origination Message */
+#define CP_EXTENSION_BIT_2_WIDTH              1
+                            /* CP_PI_WIDTH and CP_SI_WIDTH declared in */
+                            /* Calling Party Number Record */
+#define CP_REDIRECTING_NUMBER_RSVD_1_WIDTH    3
+#define CP_EXTENSION_BIT_3_WIDTH              1
+#define CP_REDIRECTING_NUMBER_RSVD_2_WIDTH    3
+#define CP_REDIRECTION_REASON_WIDTH           4
+#define CP_REDIRECTING_NUMBER_REC_FIXED_FIELD_WIDTH \
+          ( CP_EXTENSION_BIT_1_WIDTH + \
+            CP_NUMBER_TYPE_WIDTH + \
+            CP_NUMBER_PLAN_WIDTH )       /* minimum size of the record */
+
+
+
+/* Reverse Record field width definitions */
+
+/* Feature Indicator Record */
+#define CP_FEATURE_WIDTH                       4
+#define CP_FEATURE_INDICATOR_REC_RSVD_WIDTH    4
+
+#define CP_FEATURE_INDICATOR_REC_FIXED_FIELD_WIDTH \
+                               (CP_FEATURE_WIDTH + \
+                CP_FEATURE_INDICATOR_REC_RSVD_WIDTH)
+#if ((CP_FEATURE_INDICATOR_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_FEATURE_INDICATOR_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Keypad Facility Record */
+
+/* Called Party Number Record */
+  /* See Forward records */
+
+/* Calling Party Number Record */
+  /* See Forward records */
+
+/* Call Mode Record */
+#define CP_ORIG_MODE_WIDTH                     1
+#define CP_CALL_MODE_REC_RSVD_FIELD_WIDTH      7
+#define CP_CALL_MODE_REC_FIXED_FIELD_WIDTH      \
+                 (CP_ORIG_MODE_WIDTH          + \
+                  CP_SERVICE_OPTION_WIDTH     + \
+                  CP_SERVICE_OPTION_WIDTH     + \
+          CP_CALL_MODE_REC_RSVD_FIELD_WIDTH)
+#if ((CP_CALL_MODE_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_CALL_MODE_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Terminal Information Record */
+#define CP_MOB_MFG_CODE_WIDTH                  8
+#define CP_MOB_MODEL_WIDTH                     8
+#define CP_MOB_FIRM_REV_WIDTH                  16
+#define CP_MOB_LOCAL_CTRL_WIDTH                1
+#define CP_MOB_SLOT_CYCLE_INDEX_WIDTH          3
+#define CP_TERMINAL_INFO_RSVD_WIDTH            4
+#define CP_TERMINAL_INFO_REC_FIXED_FIELD_WIDTH     \
+                 (CP_P_REV_WIDTH                 + \
+                  CP_MOB_MFG_CODE_WIDTH          + \
+                  CP_MOB_MODEL_WIDTH             + \
+                  CP_MOB_FIRM_REV_WIDTH          + \
+                  CP_SCM_WIDTH                   + \
+                  CP_MOB_LOCAL_CTRL_WIDTH        + \
+                  CP_MOB_SLOT_CYCLE_INDEX_WIDTH  + \
+          CP_TERMINAL_INFO_RSVD_WIDTH)
+#if ((CP_TERMINAL_INFO_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_TERMINAL_INFO_REC_FIXED_FIELD_WIDTH  \
+        not an integral number of octets"
+#endif
+
+/* Security Status Record */
+#define CP_ENCRYPT_MODE_WIDTH                    2
+#define CP_SECURITY_STATUS_REC_RSVD_FIELD_WIDTH  3
+#define CP_SECURITY_STATUS_REC_FIXED_FIELD_WIDTH   \
+                 (CP_AUTH_MODE_WIDTH             + \
+                  CP_ENCRYPT_MODE_WIDTH          + \
+                  CP_PRIVATE_LCM_WIDTH           + \
+          CP_SECURITY_STATUS_REC_RSVD_FIELD_WIDTH)
+#if ((CP_TERMINAL_INFO_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_TERMINAL_INFO_REC_FIXED_FIELD_WIDTH  \
+        not an integral number of octets"
+#endif
+
+/* Power Class Information Record */
+#define CP_MAX_EIRP_WIDTH                      8
+
+/* Call Waiting Indicator Record*/
+#define CP_CALL_WAITING_INDICATOR_WIDTH      1
+#define CP_CALL_WAITING_INDICATOR_REC_RSVD_WIDTH    7
+#define CP_CALL_WAITING_INDICATOR_REC_FIXED_FIELD_WIDTH \
+                               (CP_CALL_WAITING_INDICATOR_WIDTH + \
+                CP_CALL_WAITING_INDICATOR_REC_RSVD_WIDTH)
+#if ((CP_CALL_WAITING_INDICATOR_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_CALL_WAITING_INDICATOR_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Service Option Information Record */
+#define CP_SERV_OPT_INFO_RSVD_WIDTH            6
+#define CP_SERV_OPT_SUPPORT_WIDTH              1
+#define CP_SERV_OPTION_INFO_REC_FIXED_FIELD_WIDTH \
+                 (CP_SERV_OPT_INFO_RSVD_WIDTH        + \
+                  CP_SERV_OPT_SUPPORT_WIDTH          + \
+          CP_SERV_OPT_SUPPORT_WIDTH          + \
+          CP_SERVICE_OPTION_WIDTH)
+#if ((CP_SERV_OPTION_INFO_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SERV_OPTION_INFO_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Multiplex Option Information Record */
+#define CP_MULTIPLEX_OPTION_WIDTH             16
+#define CP_MUX_OPTION_INFO_REC_FIXED_FIELD_WIDTH \
+                 (CP_MULTIPLEX_OPTION_WIDTH          + \
+                  CP_FOR_RATES_WIDTH                 + \
+          CP_REV_RATES_WIDTH)
+#if ((CP_MUX_OPTION_INFO_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_MUX_OPTION_INFO_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+
+/* Service Configuration Record */
+#define CP_SERV_CFG_HEADER_FIXED_FIELD_WIDTH \
+                           (CP_FOR_MUX_OPTION_WIDTH   + \
+                CP_REV_MUX_OPTION_WIDTH   + \
+                CP_FOR_RATES_WIDTH        + \
+                CP_REV_RATES_WIDTH        + \
+                CP_NUM_CON_REC_WIDTH)
+#if ((CP_SERV_CFG_HEADER_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SERV_CFG_HEADER_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+#define CP_SERV_CFG_CON_REC_FIXED_FIELD_WIDTH \
+                 (CP_SERVICE_CONNECTION_RECORD_LEN_WIDTH  + \
+                  CP_CON_REF_WIDTH                        + \
+          CP_SERVICE_OPTION_WIDTH                 + \
+          CP_FOR_TRAFFIC_WIDTH                    + \
+          CP_REV_TRAFFIC_WIDTH)
+#if ((CP_SERV_CFG_CON_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SERV_CFG_CON_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Subaddress Record */
+#define CP_EXTENSION_BIT_WIDTH                 1
+#define CP_SUBADDRESS_TYPE_WIDTH               3
+#define CP_ODD_EVEN_INDICATOR_WIDTH            1
+#define CP_SUBADDRESS_RSVD_WIDTH               3
+#define CP_SUBADDRESS_REC_FIXED_FIELD_WIDTH \
+       (CP_EXTENSION_BIT_WIDTH            + \
+        CP_SUBADDRESS_TYPE_WIDTH          + \
+          CP_ODD_EVEN_INDICATOR_WIDTH       + \
+          CP_SUBADDRESS_RSVD_WIDTH)
+#if ((CP_SUBADDRESS_REC_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_SUBADDRESS_REC_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+/* Power Control Information Record */
+#define CP_MIN_PWR_CNTL_STEP_WIDTH             3
+#define CP_PWR_CNTL_INFO_RSVD_WIDTH            5
+#define CP_PWR_CNTL_INFO_FIXED_FIELD_WIDTH \
+       (CP_MIN_PWR_CNTL_STEP_WIDTH       + \
+          CP_PWR_CNTL_INFO_RSVD_WIDTH)
+#if ((CP_PWR_CNTL_INFO_FIXED_FIELD_WIDTH%8) != 0)
+#error "CP_PWR_CNTL_INFO_FIXED_FIELD_WIDTH \
+        not an integral number of octets"
+#endif
+
+
+
+/* Roaming Information */
+#define CP_ROAMING_ACCOLC_WIDTH           4
+#define CP_MOB_TERM_HOME_WIDTH            1
+#define CP_MOB_TERM_FOR_SID_WIDTH         1
+#define CP_MOB_TERM_FOR_NID_WIDTH         1
+
+/* Enhanced Roaming Indicators (ERI) */
+#define CP_ERI_VERSION_WIDTH              16
+#define CP_ERI_NUM_ENTRIES_WIDTH           6
+#define CP_ERI_TYPE_WIDTH                  3
+#define CP_NUM_ICON_IMAGES_WIDTH           4
+#define CP_ICON_IMAGE_TYPE_WIDTH           3
+#define CP_ERI_INDICATOR_ID_WIDTH          8
+#define CP_ERI_ICON_IMAGE_ID_WIDTH         4
+#define CP_ERI_ICON_MODE_WIDTH             2
+#define CP_ERI_CALL_PROMPT_ID_WIDTH        2
+#define CP_ERI_ALERT_CALL_COUNTER_ID_WIDTH 3
+#define CP_ERI_CHAR_ENCODING_TYPE_WIDTH    5
+#define CP_ERI_TEXT_LENGTH_WIDTH           8
+#define CP_ERI_RESERVED_FOR_CALL_PROMPT_TABLE_WIDTH 96
+
+/* MEID record */
+#define CP_MEID_LENGTH_WIDTH               4
+#define CP_MEID_WIDTH                      56
+#define CP_MEID_ME_LENGTH_WIDTH            4
+#define CP_MEID_ME_WIDTH                   56
+
+/* Global Emergence Call  */
+#define CP_NUM_INCL_WIDTH                     1
+#define CP_MS_ORIG_POS_LOC_IND_WIDTH                 1
+#define CP_NUM_CHAR_WIDTH                                 8
+
+/* Extended Keypad Facility  */
+#define CP_NUMBER_INFO_INCL_WIDTH                     1
+#define CP_NUM_FIELDES_WIDTH                                 6
+/* Record type header width definitions */
+#define REV_INFO_IMSI_WIDTH                   7
+#define REV_INFO_POWER_CLASS_WIDTH            1
+#define REV_INFO_OPERATING_MODE_WIDTH         1
+#define REV_INFO_ROAMING_WIDTH                5
+
+/* R.Sattari, 9/6/00, added for capability information record */
+#define REV_INFO_CAPABILITY_INFORMATION_WIDTH 1
+
+/* Page Response */
+#define CP_CMEA_WIDTH 1
+#define CP_ECMEA_WIDTH 1
+#define CP_REA_WIDTH 1
+
+
+/*****************************************************************************
+ * Order Information
+ ****************************************************************************/
+#define CP_AUTHBS_WIDTH          18
+#define CP_ROAM_INDI_WIDTH        8
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+kal_uint8  cpGetField8    (kal_uint8* buffer, kal_uint16* index, kal_uint8 width);
+kal_uint16 cpGetField16   (kal_uint8* buffer, kal_uint16* index, kal_uint8 width);
+kal_uint32 cpGetField32   (kal_uint8* buffer, kal_uint16* index, kal_uint8 width);
+kal_uint8  cpGetByteArray (kal_uint8* dest, kal_uint16* index, kal_uint8* src, kal_uint8 len,
+                       kal_uint8 maxLen, kal_bool appendNull);
+kal_uint8  cpGetBitArray  (kal_uint8* dest, kal_uint8* src, kal_uint16* index, kal_uint8 len);
+
+void   cpPutReset     (kal_uint16 bufferLength);
+kal_bool   __cpPutField8    (kal_uint8* buffer, kal_uint16* index, kal_uint8 width, kal_uint8 field, kal_uint16 bufferLength);
+kal_bool   __cpPutField16   (kal_uint8* buffer, kal_uint16* index, kal_uint8 width, kal_uint16 field, kal_uint16 bufferLength);
+kal_bool   __cpPutField32   (kal_uint8* buffer, kal_uint16* index, kal_uint8 width, kal_uint32 field,  kal_uint16 bufferLength);
+void   cpPutByteArray (kal_uint8* dest, kal_uint16* index, kal_uint8* src, kal_uint8 len);
+kal_bool   cpGetOverflow  (void);
+
+#define CP_ONE_BIT_WIDTH            1
+#define CP_TWO_BIT_WIDTH            2
+#define CP_THREE_BIT_WIDTH          3
+#define CP_FOUR_BIT_WIDTH           4
+#define CP_FIVE_BIT_WIDTH           5
+#define CP_SIX_BIT_WIDTH            6
+#define CP_SEVEN_BIT_WIDTH          7
+#define CP_EIGHT_BIT_WIDTH          8
+#define CP_NINE_BIT_WIDTH           9
+#define CP_TEN_BIT_WIDTH           10
+#define CP_ELEVEN_BIT_WIDTH        11
+#define CP_TWELVE_BIT_WIDTH        12
+#define CP_THIRTEEN_BIT_WIDTH      13
+#define CP_FOURTEEN_BIT_WIDTH      14
+#define CP_FIFTEEN_BIT_WIDTH       15
+#define CP_SIXTEEN_BIT_WIDTH       16
+#define CP_THIRTY_TWO_BIT_WIDTH    32
+#define CP_MAX_PUTFIELD_BUFFER_SIZE 65535
+#define CP_LOCAL_MAX_PUTFIELD_BUFFER_SIZE 65535
+#define cpPutField8(buffer,index,width,value)\
+	    __cpPutField8(buffer,index,width,value,CP_LOCAL_MAX_PUTFIELD_BUFFER_SIZE)
+#define cpPutField16(buffer,index,width,value)\
+	    __cpPutField16(buffer,index,width,value,CP_LOCAL_MAX_PUTFIELD_BUFFER_SIZE)
+#define cpPutField32(buffer,index,width,value)\
+	    __cpPutField32(buffer,index,width,value,CP_LOCAL_MAX_PUTFIELD_BUFFER_SIZE)
+#endif  /* _FIELD_H */
+
+
+
+
+
+
+
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10099\1 2012-07-27 09:00:26 GMT gdeng
+** SCBP#10099 **/
+/**Log information: \main\Trophy_SO73\1 2013-07-09 05:02:28 GMT gdeng
+** HREF#0000 see scbp11634**/
+/**Log information: \main\Trophy\1 2013-07-17 08:11:42 GMT cshen
+** href#2222**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Ilistmgr.h b/mcu/interface/protocol/as_c2k/1xrtt/Ilistmgr.h
new file mode 100644
index 0000000..ed85af0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Ilistmgr.h
@@ -0,0 +1,187 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/***************************************************************************
+ *
+ * Module:     ilistmgr.c
+ *
+ * Purpose:    This file contains the interface for the Isotel List
+ *             Manager utility. The lists contain fixed size elements
+ *             and are themselves fixed in number of entries.
+ *
+ ***************************************************************************
+ *
+ ***************************************************************************
+ *
+ * RCS Log Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: ilistmgr.h $
+ *       Revision 1.2  2004/03/25 12:08:51  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:48  fpeng
+ *       Initial revision
+ *       Revision 1.4  2002/06/06 13:12:57  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2001/11/08 12:19:53  AMALA
+ *       Deleted compiler switch SYS_SEL_1_CBP3_MERGE &
+ *       associated non-compiled code.
+ *       Revision 1.2  2001/09/17 14:10:44  AMALA
+ *       CBP3 System Selection port
+ *       Revision 1.1  2001/01/17 10:58:52  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:17  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:09:07Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.8  1999/09/04 02:48:45  scotvold
+ *       Added function iListReserveHead() that reserves a record
+ *       at the head of the list.
+ *
+ *       Revision 1.7  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.6  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.5  1998/08/28 14:46:51  scotvold
+ *       Added iListDeleteRecord() call.
+ *
+ *       Revision 1.4  1998/07/29 04:21:11  mhayduk
+ *       Added new prototype for iListReadnext().
+ *
+ *       Revision 1.3  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.2  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _ILISTMGR_H_
+
+  #define _ILISTMGR_H_ 1
+
+/*****************************************************************************
+ * Structures and definitions
+ ****************************************************************************/
+  typedef struct
+  {
+    /* Static list descriptors */
+    kal_uint8* list;
+    kal_uint16 numRecords;
+    kal_uint16 recordSize;
+
+    /* Dynamic list descriptors */
+    kal_uint16 putIndex;           /* next position to add entry */
+    kal_uint16 getIndex;           /* next position to get/read entry */
+    kal_uint16 accessIndex;        /* index set by last get/read used */
+                               /* making updates and deletions */
+    kal_uint16 numInList;          /* current number of entries */
+  } IListDesc;
+
+  /* Initializes the list */
+  void iListInit (IListDesc* listD, void* list, kal_uint16 numRecords,
+                  kal_uint16 recordSize);
+
+  /* Returns number of records currently in the queue */
+  kal_uint16 iListNum (IListDesc* listD);
+
+  /* Returns number of unoccupied records in the queue */
+  kal_uint16 iListRoom (IListDesc* listD);
+
+  void iListFlush (IListDesc* listD);
+
+  /* Sets the index to first entry */
+  void iListTop(IListDesc* listD);
+
+  /* Returns KAL_FALSE if list is full */
+  kal_bool iListReserve (IListDesc* listD, void** entry);
+
+  /* Returns KAL_FALSE if list is full */
+  kal_bool iListReserveHead(IListDesc* listD, void** entry);
+
+  /* Returns KAL_FALSE if list is full */
+  kal_bool iListPut (IListDesc* listD, void* data);
+
+  /* Returns KAL_FALSE if queue is empty */
+  kal_bool iListGet (IListDesc* listD, void* data);
+
+  /* Read the next entry in the list */
+  kal_bool iListGetNext(IListDesc* listD, void* data);
+
+  /* Returns KAL_FALSE if queue is empty */
+  kal_bool iListGetIndex (IListDesc* listD, void* data, kal_uint16 index);
+
+  /* reads record at requested index */
+  kal_bool iListReadIndex (IListDesc* listD, void** entry, kal_uint16 index);
+
+  /* Returns KAL_FALSE if queue is empty */
+  kal_bool iListRead (IListDesc* listD, void** data);
+
+  /* set the entry pointer to next record entry */
+  kal_bool iListReadNext (IListDesc* listD, void** entry);
+
+  /* Update last read entry */
+  kal_bool iListUpdate (IListDesc* listD, void* data);
+
+  /* Delete last read entry */
+  kal_bool iListDelete (IListDesc* listD);
+
+  /* Delete a specified record */
+  kal_bool iListDeleteRecord (IListDesc* listD, void* record);
+
+  /* Delete a specified entry */
+  kal_bool iListDeleteEntry (IListDesc* listD, kal_uint16 entry);
+
+/* SNR CSS*/
+  /* Puts the entry atthe head of the list */
+  kal_bool iListPutHead(IListDesc* listD, void* data);
+
+#endif /* _ILISTMGR_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Ms_Cap_Db.h b/mcu/interface/protocol/as_c2k/1xrtt/Ms_Cap_Db.h
new file mode 100644
index 0000000..be3b4b7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Ms_Cap_Db.h
@@ -0,0 +1,193 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* FILE NAME   : Ms_Cap_Db.h
+*
+* DESCRIPTION : Header file for Ms_Cap_Db.c
+*
+* HISTORY     : See Log at end of file
+*
+*              
+******************************************************************************
+*******************************************************************************/
+
+#ifndef _MS_CAP_DB_H_
+
+#define _MS_CAP_DB_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "Msg_defn.h"
+#include "Serv_cfg.h"
+#include "pch_msg.h"
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+void cpInitMsCapDb( const MsCapDb* );
+void cpMsCapDbRestoreToDefaultValues( void );
+const MsCapDb* getMsCapDb( void );
+void cpSetSr1Supported( const kal_bool);
+void cpSetSr3Supported( const  kal_bool);
+void cpSetOdSupported( const kal_bool);
+void cpSetRcClass1Supported( const kal_bool);
+void cpSetRcClass2Supported(const kal_bool);
+void cpSetRcClass3Supported(const kal_bool);
+void cpSetQpchSupported( const kal_bool );
+void cpSetEnhancedRc( const kal_bool );
+void cpSetForRcPref( const RcPrefType );
+void cpSetRevRcPref( const RcPrefType );
+void cpSetFchSupported( const kal_bool );
+void cpSetFchFrameSize( const FchFrameSizeType );
+void cpSetForFchRcMap( const ForRcType );
+void cpSetRevFchRcMap( const RevRcType );
+void cpSetDcchSupported( const kal_bool );
+void cpSetDcchFrameSize( const DcchFrameSizeType );
+void cpSetForDcchRcMap( const ForRcType );
+void cpSetRevDcchRcMap( const RevRcType );
+void cpSetGeoLocType( const GeoLocType );
+void cpSetRevFchGatingReq( const kal_bool );
+void cpSetStsSupported(const kal_bool );
+void cpSet3xCchSupported( const kal_bool );
+void cpSetWllSupported( const kal_bool );
+void cpSetSoBitmapInd( const ServOptBitmapInd );
+void cpSetTieredServices( const kal_bool );
+void cpSetMsCapDbChecksum( MsCapDb* );
+ForRcType cpConvForRcToBitType( const kal_uint8 forRc );
+RevRcType cpConvRevRcToBitType( const kal_uint8 revRc );
+PDCHChCfgType cpConvPDCHChCfgToBitType( const FcschChIndType ExtChInd );
+kal_bool cpIsForSchMuxOptionSupported( const kal_uint16 forSchMux );
+kal_bool cpIsRevSchMuxOptionSupported( const kal_uint16 revSchMux );
+kal_uint8 cpGetNumMuxOption( const TrafficChannelTypes channelType );
+kal_uint8 cpGetNumForSchMuxOption( const RateSetType rst );
+kal_uint8 cpGetNumRevSchMuxOption( const RateSetType rst );
+void  cpValidateMsCapDbValues( MsCapDb* pMsCapDb );
+
+/*RC Map Field Supported by the MS */
+void cpFmtRcMap(kal_uint8* buffer, kal_uint16* index, kal_uint16 rcMap, kal_bool isFwd, kal_uint16 soRequested);
+void cpSet1xAdvancedSupported( kal_bool Cdma1xAdvSupported );
+kal_bool cpGet1xAdvancedSupported(void);
+#endif
+
+/*****************************************************************************
+* $Log: Ms_Cap_Db.h $
+*
+* 07 06 2017 sue.zhong
+* [MOLY00259241] [6293][C2K]Replace with KAL data type
+* Correct copyright file header
+* Revision 1.6  2005/05/20 14:19:24  vsethuraman
+* CR 6254 :- Added the InfoRecCapabilityMap and new enum's to reflect them.
+* Revision 1.5  2004/10/05 16:44:30  asharma
+* Fixed CR5104 & CR5228 for LGE Rel-C compliance.
+* Revision 1.4  2004/04/23 10:50:04  asharma
+* CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+* Revision 1.3.1.4  2004/04/21 10:45:12  asharma
+* Revision 1.3.1.3  2004/04/21 10:22:22  asharma
+* Revision 1.3.1.2  2004/04/14 15:19:58  asharma
+* Revision 1.3  2004/04/06 14:02:15  dstecker
+* CBP6.1 release 1
+* Revision 1.2  2004/03/25 12:08:54  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.2  2003/08/28 11:19:45  bcolford
+* Update for merge.
+* Revision 1.20  2003/08/06 09:52:33  yzhang
+* Revision 1.19  2003/05/08 18:09:26  hans
+* SCRM Duration And Duration Units field added to MS Cap DB
+* Revision 1.18  2003/04/01 09:30:54  byang
+* CR#1858: Promote private restoreToDefaultValues() to an
+* external cpMsCapDbRestoreToDefaultValues() function.
+* Revision 1.17  2003/02/24 14:51:05  bsharma
+* CR 1548;  Created fields for DRS & CH_IND
+* Revision 1.16  2002/10/22 09:59:42  mclee
+* Add note to remove rlpCapBlopLen during next MS Cap cleanup.
+* Revision 1.15  2002/08/27 17:08:13  byang
+* Add new field to define the ping period during DCCH only mode.
+* Revision 1.14  2002/08/08 14:58:14  mclee
+* Add LocServ TCP & Orig entries to MS Cap Db
+* Revision 1.13  2002/07/31 17:09:35  hans
+* Support for other Band Class's added (cr474).
+* Revision 1.12  2002/06/06 13:13:35  chinh
+* Changed and Added Copyright
+* Revision 1.11  2002/04/18 09:50:34  mclee
+* Add new fields for new loc serv functionality
+* Revision 1.10  2002/04/03 15:05:55  byang
+* Changed the input argument for cpGetNumForSchMuxOption()
+* and cpGetNumRevSchMuxOption().
+* Add opMode to database.
+* Revision 1.9  2002/03/13 16:16:22  byang
+* CR341, 454, 472: Modified the format of the database because of 
+* CR454.  Other enhancements were made to reduce the size of the 
+* database.
+* 
+* Revision 1.8  2002/02/06 11:42:17  mclee
+* Add and modify encryption supported fields in Ms Cap Db.  Remove prototype cpSetEncryptionType().
+* Revision 1.7  2001/11/13 17:27:07  byang
+* Made RcPrefType and RcTypes compatible.
+* Revision 1.6  2001/08/30 14:58:31  byang
+* Added function prototype declaration for RC type to PE defined
+* bitmap type convertion.
+* Revision 1.5  2001/08/29 15:33:15  akayvan
+* Added declaration for cpConvBandToBitType() to fix build warning.
+* Revision 1.4  2001/06/27 15:43:38  hans
+* Ms Cap Db updated with Channel Configuration Capability Information, Extended Multiplex Information and Band Subclass information for Extended Status / Status response message.
+* Revision 1.3  2001/04/27 16:35:19  byang
+* Added functionality to set the MS capability database from ETS
+* and to stored the database into DBM when the MS is powerd-
+* down.  On power-up, the MS Cap. Db. is read from DBM.
+* Revision 1.2  2001/04/18 11:02:18  chinh
+* Fixed some MS capability problems
+* Revision 1.1  2001/01/17 18:59:04Z  plabarbe
+* Initial revision
+* Revision 1.3  2000/12/05 17:44:28  byang
+* Idle mode - IS2000A Addendum modifications.
+* Revision 1.2  2000/11/27 13:09:41  chinh
+* Added new database items
+* Revision 1.1  2000/11/13 19:21:06Z  byang
+* Initial revision
+*****************************************************************************/
+/**Log information: \main\CBP80\cbp80_cshen_scbp10103\1 2012-08-03 02:01:38 GMT cshen
+** cbp80_cshen_scbp10103**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Msg_defn.h b/mcu/interface/protocol/as_c2k/1xrtt/Msg_defn.h
new file mode 100644
index 0000000..42faa71
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Msg_defn.h
@@ -0,0 +1,2243 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     msg_defn.h - Traffic Channel Message Data Definitions
+ *
+ * Purpose:    Header file containing structures for Traffic Channel Message
+ *             Body Formats.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.10 $
+ *    $Author: bcolford $
+ *
+ *       $Log: Msg_defn.h $
+ *
+ *       09 01 2017 lemon.xiong
+ *       [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ *       	
+ *       	ut code
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 18 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	Fix HSC code release build error and 1xRTT OTA message parse
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *       Revision 1.10  2005/10/05 14:46:15  bcolford
+ *       Gating during soft handoff
+ *       Revision 1.9.3.2  2005/09/30 16:04:33  bcolford
+ *       Gating during soft handoff
+ *       Revision 1.6  2005/09/02 09:53:20  winston
+ *       Fix CR6926:Rev Gating during Soft Handoff
+ *       Revision 1.9.3.1  2005/04/06 16:12:51  bcolford
+ *       Duplicate revision
+ *       Revision 1.9  2005/04/06 16:12:51  dstecker
+ *       Added some of the new Rel A message definition
+ *       Revision 1.8  2005/03/18 11:40:43  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21. 
+ *       Revision 1.7  2004/09/28 16:44:19  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.5  2004/06/15 17:13:31  asharma
+ *       Updated the 6.1 baseline with latest 6.0 code.
+ *       Revision 1.4  2004/04/23 10:50:06  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.3.1.2  2004/04/14 15:20:00  asharma
+ *       Revision 1.3  2004/04/06 14:02:12  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:08:54  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/27 15:57:43  bcolford
+ *       Updated for merge.
+ *       Revision 1.25  2003/05/21 17:11:45  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.24  2003/03/04 09:43:43  mclee
+ *       Add new Ext Release Indication
+ *       Revision 1.23  2003/02/12 09:56:43  dstecker
+ *       Added drop timer fields to the ActiveRecord structure
+ *       Revision 1.22  2002/12/04 14:44:50  hans
+ *       CR1648: OP mode setting is retrieved direct from ms cap db.
+ *       Revision 1.21  2002/08/27 17:09:09  byang
+ *       Fixed the message ID for ERRM and RRRM.
+ *       Revision 1.20  2002/08/19 10:15:58  dstecker
+ *       Change to new cadidate frequency message structure
+ *       Revision 1.19  2002/07/15 11:48:08  chinh
+ *       Added OddEvenIndicator enums (CR619).
+ *       Revision 1.18  2002/07/11 18:32:54  byang
+ *       CR #952: Added new field numDigits to structure BDTMFMData.
+ *       Revision 1.17  2002/06/06 13:13:39  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.16  2002/05/14 20:32:27  hans
+ *       CR ID636 bug fix for retrievable and settable parameters.
+ *       Revision 1.15  2002/05/08 16:48:26  byang
+ *       Modified PwrMeasRepData data structure to accommodate
+ *       forward supplemental channel.
+ *       Revision 1.14  2002/04/23 16:47:37  dstecker
+ *       Added scrIncluded flag to hard handoff (PhyHHOCfg) structure
+ *       Revision 1.13  2002/03/15 15:30:52  dstecker
+ *       Added member to PHDMData to keep track of if continous reverse pilot
+ *       Revision 1.12  2002/02/19 14:33:33  akayvan
+ *       RPC Mods.  Updated PCNMData structure for the entire length of 
+ *       the Power Control Message if rpcIncl is KAL_TRUE.
+ *       Revision 1.11  2001/11/20 12:31:32  mclee
+ *       Remove CP_MAX_TMSI_ZONE_LEN define
+ *       Revision 1.10  2001/11/13 17:32:35  byang
+ *       Added message IDs, structure definitions, enumerations to
+ *       support SCH - HSPD service.
+ *       Revision 1.9  2001/10/31 10:54:24  akayvan
+ *       trafficPilot type changes from kal_uint8 to kal_int8 in RLGain struct.
+ *       Revision 1.8  2001/10/29 09:44:17  mclee
+ *       Modified code to enforce kal_bool to strictly enum type KAL_TRUE or KAL_FALSE
+ *       Revision 1.7  2001/09/07 18:05:18  akayvan
+ *       Updated RTCMessageType, RxMsg data types, and added new 
+ *       data structures per FPC.
+ *       Revision 1.6  2001/08/03 15:15:10  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.5  2001/07/18 15:11:42  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.4  2001/06/18 15:12:35  chinh
+ *       Added new variables to support information records in FWIM, FNM, and AWIM.
+ *       Revision 1.3  2001/06/05 10:53:08  hans
+ *       Message definitions added for IS2000 rev.0 Information Records
+ *       Revision 1.2  2001/03/16 11:32:59  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.1  2001/01/17 10:59:00  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/05 17:44:31  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.3  2000/11/27 13:11:12  chinh
+ *       Added new item to enum RejectReason.
+ *       Revision 1.2  2000/11/13 22:24:36Z  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:20Z  fpeng
+ *       Initial revision
+ *       Revision 1.4  2000/09/09 00:01:29Z  RSATTARI
+ *       Added capability information field to the status request data structure.
+ *       Revision 1.3  2000/08/23 22:09:19Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:15:12Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.45  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.44  1999/10/20 23:57:18  gfrye
+ *       Added definitions for reserved assign modes 110 and 111.
+ *
+ *       Revision 1.43  1999/09/02 23:54:25  scotvold
+ *       Updated T53 HSPD to Rev. X7.
+ *
+ *       Revision 1.42  1999/07/23 18:00:22  scotvold
+ *       Changes to wbiosReportHandoff API call to indicate
+ *       type of Hard Handoff.
+ *
+ *       Revision 1.41  1999/07/21 21:12:30  scotvold
+ *       Disjoint Active Set Hard Handoff Fix
+ *       Same Pilot PN but different Code Channel.
+ *
+ *       Revision 1.40  1999/06/20 06:23:32  scotvold
+ *       Arm compiler warnings.
+ *
+ *       Revision 1.39  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.38  1999/04/16 20:15:03  scotvold
+ *       Lint fixes.
+ *
+ *       Revision 1.37  1999/04/16 00:29:03  scotvold
+ *       Added support for already encoded digits.
+ *
+ *       Revision 1.36  1999/04/15 21:34:44  scotvold
+ *       Added T53 GHDM support.
+ *
+ *       Revision 1.35  1999/04/15 01:37:10  mhayduk
+ *       Added encoded indication and num digits to data burst parms.
+ *
+ *       Revision 1.34  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.33  1999/03/04 20:27:21  mhayduk
+ *       Added enumerated list for SYS_ORDERING field.
+ *
+ *       Revision 1.32  1999/02/22 05:32:16  scotvold
+ *       Removed unused structure.
+ *
+ *       Revision 1.31  1999/02/20 00:39:52  scotvold
+ *       Added message encryption support.
+ *
+ *       Revision 1.30  1999/02/08 22:53:37  scotvold
+ *       RejectReason and FORInfoData structures added.
+ *
+ *       Revision 1.29  1999/02/05 02:24:44  scotvold
+ *       Release Indication changes.
+ *       Origination Continuation changes.
+ *
+ *       Revision 1.28  1999/01/26 18:50:53  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.27  1999/01/19 22:47:07  mhayduk
+ *       Added reverse order qualifier definitions for release.
+ *
+ *       Revision 1.26  1999/01/19 18:53:49  scotvold
+ *       T53 structure changes.
+ *
+ *       Revision 1.25  1999/01/09 00:34:37  scotvold
+ *       Structure changes for R1.20.
+ *
+ *       Revision 1.24  1999/01/05 00:28:54  mhayduk
+ *       Updated for new API release.
+ *
+ *       Revision 1.23  1998/12/02 00:08:23  scotvold
+ *       Statistic modifications.
+ *
+ *       Revision 1.22  1998/11/27 17:42:59  mhayduk
+ *       Added release order order qualifiers.
+ *
+ *       Revision 1.21  1998/11/24 22:42:53  mhayduk
+ *       Renamed reserved encrypt mode enum entry.
+ *
+ *       Revision 1.20  1998/11/24 05:40:36  mhayduk
+ *       Cleaned up definitions for checking of TMSI Zone length -
+ *       max zone size is 8.
+ *
+ *       Revision 1.19  1998/11/02 22:11:47  scotvold
+ *       Moved MAX SIZE defn to custom.h.
+ *
+ *       Revision 1.18  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.17  1998/09/25 00:29:35  scotvold
+ *       Table tracing cleanup.
+ *
+ *       Revision 1.16  1998/09/21 23:11:54  dfischer
+ *       Set CP_CF_PERIODIC_SEARCH to 3
+ *
+ *       Revision 1.15  1998/09/11 02:37:48  scotvold
+ *       Variable type changes.
+ *
+ *       Revision 1.14  1998/08/28 21:47:40  mhayduk
+ *       Fixes from linting.
+ *
+ *       Revision 1.13  1998/08/21 22:52:31  scotvold
+ *       Added define.
+ *
+ *       Revision 1.12  1998/08/17 23:04:22  scotvold
+ *       Added longcode enum.
+ *
+ *       Revision 1.11  1998/08/13 00:13:56  scotvold
+ *       Null terminator for digit.
+ *
+ *       Revision 1.10  1998/07/14 23:45:17  scotvold
+ *       Lint fixes.
+ *
+ *       Revision 1.9  1998/07/14 17:28:04  scotvold
+ *       Minor changes.
+ *
+ *       Revision 1.8  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.7  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.6  1998/06/10 22:56:34  scotvold
+ *       Candidate Frequency structure updates
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.3  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.2  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.1  1998/03/30  23:26:03  mhayduk
+ * Initial revision
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _MSG_DEFN_H
+#define _MSG_DEFN_H 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "custom.h"
+#include "pilots.h"
+#include "longcode.h"
+#include "Serv_cfg.h"
+#include "systime.h"
+#include "cssapi.h"
+#include "Field.h"
+#include "sync_msg.h"
+#include "pswapi.h"
+
+/****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+#define CP_TC_MAX_MSG_SIZE      255
+
+#define CP_MIN_ACTION_TIME_FRAMES  2
+
+#define CP_NOM_PWR_SIGN_BIT_SET  0x08
+
+#define PLCM39_SIZE	( (CP_PLCM_39+7) >> 3 )
+
+/* ORDQ values */
+#define CP_NO_ORDQ                    0
+#define CP_FOR_NO_ORDQ                0
+#define CP_SUCCESS_ORDQ               0
+#define CP_LOCK_ORDQ                  16
+#define CP_REG_ACCEPTED_ORDQ          0
+#define CP_REG_REQUEST_ORDQ           1
+#define CP_REG_REJECT_ORDQ            2
+#define CP_REG_REJECT_DEL_TMSI_ORDQ   4
+#define CP_REG_ACCEPT_ROAMI_ORDQ      5
+#define CP_REG_ACCEPT_ROAMI_ORDQ2     7 
+
+#define CP_FAIL_ORDQ                  1
+#define CP_UNLOCK_ORDQ                255
+#define CP_MAINT_ORDQ                 32
+#define CP_RELEASE_NO_REASON_ORDQ     0
+#define CP_RELEASE_SO_REJECT_ORDQ     2
+#define CP_ENH_RELEASE_ORDQ     3         
+#define CP_RELEASE_POWER_DOWN_ORDQ    1
+#define CP_RELEASE_SERVICE_INACTIVE_ORDQ 2
+
+/* Data Burst burst types */
+#define EXTENDED_BURST_TYPE_INTERNATIONAL  0x3E
+#define EXTENDED_BURST_TYPE                0x3F
+
+
+
+/*************************************************************************/
+/************************ Enum Definitions *******************************/
+/*************************************************************************/
+
+
+
+
+typedef enum
+{
+  CP_AC_WIDE_ANALOG_CHANNEL,
+  CP_AC_NARROW_ANALOG_CHANNEL_BELOW,
+  CP_AC_NARROW_ANALOG_CHANNEL_ABOVE,
+  CP_AC_NARROW_ANALOG_CHANNEL_CENTERED
+} AnalogChannel;
+
+
+typedef enum
+{
+  CP_CF_SEARCH_CDMA,
+  CP_CF_SEARCH_ANALOG
+} CFSrchMode;
+
+
+typedef enum
+{
+  CP_CF_STOP_PERIODIC_SEARCH,
+  CP_CF_SINGLE_SEARCH,
+  CP_CF_PERIODIC_SEARCH = 3
+} CFSrchType;
+
+
+/* Table values in Channel Assignment Message                           */
+/* Table values in Extended Channel Assignment Message                  */
+/* IS-95B: Table 7.7.2.3.2.8-1 and Table 7.7.2.3.2.21-1 combined                */
+/* IS-2000A: Table 3.7.2.3.2.8-1 and Table 3.7.2.3.2.21.-1 combined */
+/* Note that CP_PAGE_EXT_TC_ASSIGN is given a unique value to allow     */
+/* all the actions to be combined in 1 handler                          */
+typedef enum
+{
+  CP_TRAFFIC_CHANNEL_ASSIGNMENT,
+  CP_PAGING_CHANNEL_ASSIGNMENT,
+  CP_ACQUIRE_ANALOG_SYSTEM,
+  CP_ANALOG_VOICE_CHANNEL_ASSIGNMENT,
+  CP_EXT_TRAFFIC_CHANNEL_ASSIGNMENT,
+  CP_EXT_PAGING_CHANNEL_ASSIGNMENT,
+  CP_RSVD_ASSIGN_MODE_110,
+  CP_RSVD_ASSIGN_MODE_111,
+  CP_EXT_CHANNEL_ASSIGNMENT_TRAFFIC_CHANNEL_ASSIGNMENT,
+  CP_EXT_CHANNEL_ASSIGNMENT_PAGING_CHANNEL_ASSIGNMENT,
+  CP_EXT_CHANNEL_ASSIGNMENT_ACQUIRE_ANALOG_SYSTEM,
+  CP_EXT_CHANNEL_ASSIGNMENT_ANALOG_VOICE_CHANNEL_ASSIGNMENT,
+  CP_EXT_CHANNEL_ASSIGNMENT_ENH_TRAFFIC_CHANNEL_ASSIGNMENT,
+  CP_EXT_CHANNEL_ASSIGNMENT_PDCH_TRAFFIC_CHANNEL_ASSIGNMENT
+} ChannelAssignmentMode;
+
+
+typedef enum
+{
+  CP_EM_ENCRYPTION_DISABLED,
+  CP_EM_BASIC_ENCRYPTION,
+  CP_EM_ENHANCED_ENCRYPTION,
+  CP_EM_EXTENDED_ENCRYPTION
+} EncryptMode;
+
+
+typedef enum
+{
+  CP_FOR_SUP_CODE_CHAN_STOP_PROC,
+  CP_FOR_SUP_CODE_CHAN_START_PROC,
+  CP_FOR_SUP_CODE_CHAN_UPDATE_STOP_PROC,
+  CP_FOR_SUP_CODE_CHAN_UPDATE_START_PROC
+} ForSupCodeConfig;
+
+
+typedef enum
+{
+  CP_RETRY_ORDER_CLEAR_ALL,
+  CP_RETRY_ORDER_ORIGINATION,
+  CP_RETRY_ORDER_RESOURCE_RQST,
+  CP_RETRY_ORDER_SUP_CHAN_RQST,
+  CP_RETRY_ORDER_MAX_TYPES
+} RetryDelayType;
+
+typedef enum
+{
+  CP_FOR_NO_ORDER,
+  CP_FOR_ABBREVIATED_ALERT_ORDER,
+  CP_FOR_BASE_STATION_CHALLENGE_CONFIRMATION_ORDER,
+  CP_FOR_MESSAGE_ENCRYPTION_MODE_ORDER,
+  CP_FOR_REORDER_ORDER,
+  CP_FOR_PARAMETER_UPDATE_ORDER,
+  CP_FOR_AUDIT_ORDER,
+  CP_FOR_INTERCEPT_ORDER = 9,
+  CP_FOR_MAINTENANCE_ORDER,
+  CP_FOR_BASE_STATION_ACKNOWLEDGEMENT_ORDER = 16,
+  CP_FOR_PILOT_MEASUREMENT_REQUEST_ORDER,
+  CP_FOR_MAINTENANCE_REQUIRED_ORDER,
+  CP_FOR_SERVICE_OPTION_REQUEST_ORDER,
+  CP_FOR_SERVICE_OPTION_RESPONSE_ORDER,
+  CP_FOR_RELEASE_ORDER,
+  CP_FOR_LONG_CODE_TRANSITION_REQUEST_ORDER = 23,
+  CP_FOR_CONTINUOUS_DTMF_TONE_ORDER = 25,
+  CP_FOR_STATUS_REQUEST_ORDER,
+  CP_FOR_REGISTRATION_ORDER,
+  CP_FOR_SERVICE_OPTION_CONTROL_ORDER = 29,
+  CP_FOR_LOCAL_CONTROL_ORDER,
+  CP_FOR_SLOTTED_MODE_ORDER = 31,
+  CP_FOR_RETRY_ORDER = 32,
+  CP_FOR_BASE_STATION_CAN_NOT_DECRYPT_REJECT_ORDER,
+  CP_FOR_TRANSIT_TO_IDLE_ORDER,
+  CP_FOR_MAX_ORDERS
+} ForwardOrderCode;
+
+
+
+typedef enum
+{
+  CP_FTC_LOCK_UNTIL_POWER_CYCLED_ORDQ = 1,
+  CP_FTC_MAINTENANCE_REQUIRED_ORDQ
+} FTCOrdqCode;
+
+
+typedef enum
+{
+  LC_REQUEST_PUBLIC = 0,
+  LC_REQUEST_PRIVATE,
+  LC_USE_PUBLIC,
+  LC_USE_PRIVATE
+} BSLongcode;
+
+typedef enum
+{
+  CP_OP_MODE0,  /* CP_OM_IS95_CDMA_MODE_BAND_CLASS_1 */
+  CP_OP_MODE1,  /* CP_OM_IS95_CDMA_MODE_BAND_CLASS_0 */
+  CP_OP_MODE2,  /* CP_OM_IS95_ANALOG_MODE            */
+  CP_OP_MODE3,  /* CP_OM_IS91_WIDE_ANALOG_MODE       */  
+  CP_OP_MODE4   /* CP_OM_IS91_NARROW_ANALOG_MODE     */
+} OpMode;
+
+
+typedef enum
+{
+  CP_QIT_NONE,
+  CP_QIT_BAND_CLASS,
+  CP_QIT_BAND_CLASS_AND_OP_MODE
+} QualInfoType;
+
+
+typedef enum
+{
+  CP_RO_NO_REJECT,
+  CP_RO_UNSPECIFIED_REASON,
+  CP_RO_MSG_NOT_ACCEPTED_IN_THIS_STATE,
+  CP_RO_MSG_STRUCTURE_NOT_ACCEPTABLE,
+  CP_RO_MSG_FIELD_NOT_IN_VALID_RANGE,
+  CP_RO_MSG_TYPE_OR_ORDER_CODE_NOT_UNDERSTOOD,
+  CP_RO_MSG_REQUIRES_CAPABILITY_NOT_SUPPORTED,
+  CP_RO_MSG_UNACCEPTABLE_FOR_CURRENT_CONFIG,
+  CP_RO_RESP_MSG_WOULD_EXCEED_MAX_LENGTH,
+  CP_RO_INFO_REC_NOT_SUPPORTED,
+  CP_RO_SEARCH_SET_NOT_SPECIFIED,
+  CP_RO_INVALID_SEARCH_REQUEST,
+  CP_RO_INVALID_FREQUENCY_ASSIGNMENT,
+  CP_RO_SEARCH_PERIOD_TOO_SHORT,
+  CP_RO_RC_NOT_MATCH_WITH_DEFAULT,
+  CP_RO_PLCM_TYPE_NOT_MATCH = 28,
+  CP_RO_GEM_REC_TYPE_NOT_SUPPORTED = 29, 
+  CP_RO_GEM_REC_FIELD_NOT_IN_VALID_RANGE = 30,
+  CP_RO_GEM_REC_FIELD_NOT_SUPPORTED = 31,  
+  CP_RO_GEM_REC_NOT_ACCEPTED = 32
+} RejectReason;
+
+typedef enum
+{
+  CP_RO_NORMAL_RELEASE_INDICATION,
+  CP_RO_POWER_DOWN_INDICATION
+} RejectOrderReleaseIndication;
+
+typedef enum
+{
+  CP_RI_MS_RELEASE_IND,
+  CP_RI_BS_RELEASE_NO_REASON_IND,
+  CP_RI_BS_RELEASE_SERVICE_OPTION_REJECT_IND,
+  CP_RI_POWER_DOWN_IND,
+  CP_RI_BS_EXT_RELEASE_IND,
+  CP_RI_MS_SVC_INACTIVE_IND,
+  CP_RI_BS_SRV_REDIRECTION_IND, 
+  CP_RI_BS_SRV_NDSS_OFF_IND
+ #ifdef KDDI_EXTENSIONS
+  ,CP_RI_BS_FWIM_RELEASE_IND
+ #endif
+} ReleaseIndication;
+
+
+typedef enum
+{
+  SR_ACCEPT_PROPOSED_SERVICE_CONFIGURATION,
+  SR_REJECT_PROPOSED_SERVICE_CONFIGURATION,
+  SR_PROPOSE_SERVICE_CONFIGURATION
+} ReqRespPurpose;
+
+
+
+typedef enum
+{
+  CP_REV_NO_ORDER = 0,
+  CP_REV_BASE_STATION_CHALLENGE_ORDER = 2,
+  CP_REV_SSD_UPDATE_ORDER,
+  CP_REV_PARAMETER_UPDATE_CONFIRMATION_ORDER = 5,
+  CP_REV_REQUEST_ANALOG_SERVICE_ORDER = 11,
+  CP_REV_MS_ACKNOWLEDGEMENT_ORDER = 16,
+  CP_REV_SERVICE_OPTION_REQUEST_ORDER = 19,
+  CP_REV_SERVICE_OPTION_RESPONSE_ORDER,
+  CP_REV_RELEASE_ORDER,
+  CP_REV_LONG_CODE_TRANSITION_REQ_RESP_ORDER = 23,
+  CP_REV_CONNECT_ORDER,
+  CP_REV_CONTINUOUS_DTMF_TONE_ORDER,
+  CP_REV_SERVICE_OPTION_CONTROL_ORDER = 29,
+  CP_REV_LOCAL_CONTROL_RESPONSE_ORDER,
+  CP_REV_MOBILE_STATION_REJECT_ORDER,
+  CP_REV_CALL_RESCUE_CANCEL_ORDER,
+  CP_REV_MAX_ORDERS
+} ReverseOrderCode;
+
+
+typedef enum
+{
+  CP_SR_REJECT_SERV_CFG   = 1,
+  CP_SR_PROPOSE_SERV_CFG
+} ServNegPurpose;
+
+typedef enum
+{
+  CP_TONE_DIAL,
+  CP_TONE_RING_BACK,
+  CP_TONE_INTERCEPT,
+  CP_TONE_ABBREVIATED_INTERCEPT,
+  CP_TONE_NETWORK_CONGESTION,
+  CP_TONE_ABBREVIATED_NETWORK_CONGESTION,
+  CP_TONE_BUSY,
+  CP_TONE_CONFIRM,
+  CP_TONE_ANSWER,
+  CP_TONE_CALL_WAITING,
+  CP_TONE_PIP,
+  CP_TONE_TONES_OFF = 63
+} StToneSignal;
+
+
+typedef enum
+{
+  CP_ISDN_NORMAL_ALERTING,
+  CP_ISDN_INTERGROUP_ALERTING,
+  CP_ISDN_SPECIAL_PRIORITY_ALERTING,
+  CP_ISDN_PING_RING = 4,
+  CP_ISDN_ALERTING_OFF = 15
+} StISDNAlerting;
+
+
+typedef enum
+{
+  CP_IS54B_NO_TONE,
+  CP_IS54B_LONG,
+  CP_IS54B_SHORT_SHORT,
+  CP_IS54B_SHORT_SHORT_LONG,
+  CP_IS54B_SHORT_SHORT_2,
+  CP_IS54B_SHORT_LONG_SHORT,
+  CP_IS54B_SHORT_SHORT_SHORT_SHORT,
+  CP_IS54B_PBX_LONG,
+  CP_IS54B_PBX_SHORT_SHORT,
+  CP_IS54B_PBX_SHORT_SHORT_LONG,
+  CP_IS54B_PBX_SHORT_LONG_SHORT,
+  CP_IS54B_PBX_SHORT_SHORT_SHORT_SHORT,
+  CP_IS54B_PIP_PIP_PIP_PIP
+} StIS54BAlerting;
+
+
+
+
+
+typedef enum
+{
+  CP_STATUS_INFO_REC_RSVD = 6,
+  CP_STATUS_INFO_REC_CALL_MODE,
+  CP_STATUS_INFO_REC_TERMINAL_INFORMATION,
+  CP_STATUS_INFO_REC_ROAMING_INFORMATION,
+  CP_STATUS_INFO_REC_SECURITY_STATUS,
+  CP_STATUS_INFO_REC_IMSI = 12,
+  CP_STATUS_INFO_REC_ESN,
+  CP_STATUS_INFO_REC_BAND_CLASS_INFORMATION,
+  CP_STATUS_INFO_REC_POWER_CLASS_INFORMATION,
+  CP_STATUS_INFO_REC_OPERATING_MODE_INFORMATION,
+  CP_STATUS_INFO_REC_SERVICE_OPTION_INFORMATION,
+  CP_STATUS_INFO_REC_MULTIPLEX_OPTION_INFORMATION,
+  CP_STATUS_INFO_REC_SERVICE_CONFIGURATION,
+  CP_STATUS_INFO_REC_POWER_CONTROL_INFORMATION,
+  CP_STATUS_INFO_REC_IMSI_M,
+  CP_STATUS_INFO_REC_IMSI_T
+} StatusInformationRecordType;
+
+
+typedef enum
+{
+  CP_SYS_ORDERING_A_OR_B,
+  CP_SYS_ORDERING_A_ONLY,
+  CP_SYS_ORDERING_B_ONLY,
+  CP_SYS_ORDERING_A_THEN_B,
+  CP_SYS_ORDERING_B_THEN_A,
+  CP_SYS_ORDERING_A_OR_B_ALT,
+  CP_SYS_ORDERING_RSVD
+} SysOrdering;
+
+typedef enum
+{
+  TC_FMT_OK,
+  TC_FMT_MTX_Q_FULL,
+  TC_FMT_OVERFLOW,
+  TC_FMT_MSG_FIELD_NOT_IN_VALID_RANGE
+} TCFmtResult;
+
+
+typedef enum
+{
+  CP_TC_CH_IND_000 = 0,
+  CP_TC_CH_IND_001 = 1,
+  CP_TC_CH_IND_010 = 2,
+  CP_TC_CH_IND_011 = 3,
+  CP_TC_CH_IND_100 = 4,
+  CP_TC_CH_IND_101 = 5,
+  CP_TC_CH_IND_110 = 6,
+  CP_TC_CH_IND_111 = 7
+} TCChInd;
+
+
+typedef enum
+{
+  CP_TC_EXT_CH_IND_00000 = 0,	/* reserved */
+  CP_TC_EXT_CH_IND_00001 = 1,	/* F-PDCH + F-CPPCH + R-FCH */
+  CP_TC_EXT_CH_IND_00010 = 2,	/* F-PDCH + F-CPPCH + R-DCCH */
+  CP_TC_EXT_CH_IND_00011 = 3,	/* F-PDCH + F/R-FCH */
+  CP_TC_EXT_CH_IND_00100 = 4,	/* F-PDCH + F/R-DCCH */
+  CP_TC_EXT_CH_IND_00101 = 5,	/* F-PDCH + F/R-FCH + R-DCCH */
+  CP_TC_EXT_CH_IND_00110 = 6	/* F-PDCH + F/R-FCH + F/R-DCCH */
+} TCExtChInd;
+
+
+typedef enum
+{
+  CP_TC_GATING_RATE_ONE = 0,
+  CP_TC_GATING_RATE_HALF = 1,
+  CP_TC_GATING_RATE_QUARTER = 2,
+  CP_TC_GATING_RATE_RESERVED = 3
+} TCGatingRate;
+
+typedef enum
+{
+  CP_TC_FPC_MODE_000 = 0,
+  CP_TC_FPC_MODE_001 = 1,
+  CP_TC_FPC_MODE_010 = 2,
+  CP_TC_FPC_MODE_011 = 3
+} TCFpcMode;
+
+typedef enum
+{
+    CP_SCH_RATE_0,
+    CP_SCH_RATE_1,
+    CP_SCH_RATE_2,
+    CP_SCH_RATE_3,
+    CP_SCH_RATE_4,
+    CP_SCH_RATE_5,
+    CP_SCH_RATE_6,
+    CP_SCH_RATE_7,
+    CP_SCH_RATE_8,
+    CP_SCH_RATE_NDX_INVALID
+} SchRateIndex;
+
+typedef enum
+{
+    CP_FWD_GE_REV_CHANNEL_INFO_REC,
+    CP_FWD_GE_RADIO_CFG_PARMS_REC,
+    CP_FWD_GE_DELAYED_ARQ_REC,
+    CP_FWD_GE_INVALID_REC
+} FwdGenExtensionRecType;
+
+typedef enum
+{
+    CP_REV_GE_SUPPORTED_BAND_CLASS_REC,
+    CP_REV_GE_ADD_GEO_LOC_TYPE_REC,
+    CP_REV_GE_INVALID_REC
+} RevGenExtensionRecType;
+
+/*************************************************************************/
+/********************* Misc. Structure Definitions ***********************/
+/*************************************************************************/
+
+/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+/* >>> Supplemental channel stuff */
+/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+#define CP_MAX_REV_CFG_RECS     32
+#define CP_MAX_REV_SCH          2
+#define CP_MAX_SUP_SHO          8
+#define CP_MAX_FOR_CFG_RECS     32
+#define CP_MAX_FOR_SCH          2
+#define CP_MAX_SUP              2
+#define CP_MAX_3X_REC           32
+#define CP_MAX_RPC_NUM_SUP      2
+#define CP_MAX_CPCCH_NUM_PILOTS 7
+#define CP_MAX_CQICH_ATT_ADJ_GAIN_REC 2
+
+typedef struct
+{
+  kal_uint8     forSchId;
+  kal_uint8     forSchDuration;
+  kal_bool      forSchStartTimeIncl;
+  kal_uint8     forSchStartTime;
+  kal_uint8     scclIndex;
+} ForSch; 
+
+typedef struct
+{
+  kal_uint8         revSchId;
+  kal_uint8         revSchDuration;
+  kal_bool          revSchStartTimeIncl;
+  kal_uint8         revSchStartTime;
+  SchRateIndex  revSchRate;
+} RevSch;
+
+typedef struct
+{
+	kal_bool 	id;			/* Forward Supplemental Channel identifier */
+	kal_uint8 scclIndex;	/* Supplemental Channel Code list index */
+    SchRateIndex    rate;       /* Forward Supplemental Channel Rate */
+} ForActSetSch; 
+
+typedef struct
+{
+	kal_bool 	id;		/* Reverse Supplemental Channel identifier */
+	kal_uint8 walshId;	/* Reverse Supplemental Channel Walsh cover Identifier*/
+    SchRateIndex    rate;       /* Reverse Supplemental Channel Rate */
+} RevActSetSch; 
+
+typedef struct
+{
+   kal_bool        clearRetryDelay;  /* Clear Retry Delay */
+	kal_uint8 		numForSch;			/* Number forward supplemental records */
+    ForSch          forSup[CP_MAX_FOR_SCH]; /* Forward supplemental records */
+	kal_uint8 		numRevSch;			/* Number reverse supplemental records */
+    RevSch          revSup[CP_MAX_REV_SCH]; /* Reverse supplemental records */
+	kal_uint8 		numForActSetSch;	/* Number of forward active set */
+											/* supplemental channel records */
+    ForActSetSch    forActSetSch[CP_MAX_FOR_CFG_RECS];/* Forward active set Supplemental */
+											/* channel record */
+	kal_uint8 		numRevActSetSch;	/* Number of reverse active set */
+											/* supplemental channel records */
+    RevActSetSch    revActSetSch[CP_MAX_REV_CFG_RECS]; /* Forward active set Supplemental */
+											/* channel record */
+} SchCfg;	
+
+typedef struct
+{
+   kal_uint8       forSchId;          /* Forward supplemental channel identifier */
+   kal_uint8       scclIndex;         /* Supplemental channel code list index */
+   kal_bool        pilotIncl;         /* corresponding pilot included in */
+                                  /* supplemental channel active set indicator */
+   kal_uint16      codeChanSch;       /* Code channel on the supplemental channel */
+   kal_uint8       qofMaskIdSch;      /* Quasi-orthogonal function index */
+} SchRecT;
+
+/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
+/* <<< Supplemental channel stuff */
+/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
+
+typedef struct
+{
+  kal_uint16  pilotPN;
+  kal_bool    pwrCombInd;
+  kal_uint8   fundCodeChan;
+} ActiveInitPilot;
+
+typedef struct 
+{
+  kal_uint8 tdPowerLevel;     /* Transmit Diversity Power Level, see Table 3.7.6.1-1, IS2000.5-A */
+  kal_uint8 tdMode;           /* Transmit Diversity Mode, see Table 3.7.6.1-2, IS2000.5-A */ 
+} X1CommPilotTdT; 
+ 
+typedef union 
+{
+  X1CommPilotTdT pilotType0;
+  /* TBD: REV A add auxilary pilots */
+} PilotRecT; 
+
+typedef struct
+{
+  kal_uint16  pilotPN;
+  kal_bool    pwrCombInd;
+  kal_uint16  codeChan;        /* CBP6.1 definition                         */
+  kal_uint16  codeChanFCH;     /* CPB6.0 definition Hans Chistiansen 080504 */
+  kal_uint16  codeChanDcch; 		/*dcch field valid only if ch_ind =2 or 3*/
+  kal_uint8   qofMaskIdFch;       /* Qof for FCH,  see Table 3.1.3.1.12-2, IS2000.2A, valid if ChInd == 1 or 3 */
+  kal_uint8   qofMaskIdDcch;      /* Qof for DCCH, see Table 3.1.3.1.12-2, IS2000.2A, valid if ChInd == 2 or 3 */
+  kal_uint8	 srchOffset;		   /* search offset (0=not included)  */
+  kal_uint8   srchWinNghbr;       /* Used in case Active PN demoted to Neighbor set */
+  kal_bool   addPilotRecIncl;/* 0 for common pilot, 1 for others */
+  kal_uint8  pilotRecType;  /* see Table 3.7.2.3.2.21-6, IS2000.5-A, valid only if AddPilotRecIncl = 1 */
+  PilotRecT pilotRec;   /* union, valid only if AddPilotRecIncl = 1 */
+  kal_bool    dropTimerEnabled;
+  kal_uint16  dropTimer; 
+} ActiveRecord;
+
+
+typedef struct
+{
+  kal_uint8         numPilots;
+  ActiveRecord  actRec[CP_MAX_ACTIVE_SET];
+} FTCActiveList;
+
+
+typedef struct
+{
+  kal_uint16    pilotPN;
+  kal_bool      pwrCombInd;
+  kal_uint16    codeChanFCH;
+  kal_uint16	qofMaskIdFCH;	/* Quasi-orthogonal function index             */
+                        /* FCH (inclusion based on chInd)              */
+  kal_uint16	codeChanDCH;	/* Code Channel DCCH (inclusion based on chInd)*/
+  kal_uint16	qofMaskIdDCH;	/* Quasi-orthogonal function index             */
+                        /* DCCH (inclusion based on chInd)             */
+  kal_uint8		srchOffset;		/* Search Offset (0 = not included)            */
+  kal_bool   	addPilotRecIncl;/* 0 for common pilot, 1 for others */
+  kal_uint8  	pilotRecType;  /* see Table 3.7.2.3.2.21-6, IS2000.5-A, valid only if AddPilotRecIncl = 1 */
+  PilotRecT pilotRec;   /* union, valid only if AddPilotRecIncl = 1 */
+  kal_uint8     numSch;
+  SchRecT   schRec[SYS_MAX_FSCH];
+
+  /* PDCH params */
+  kal_bool      forPdchIncl;
+  kal_uint8     walshTableId;
+  kal_uint8     numPdcch;
+  kal_uint8	    forPdcchWalsh[CP_MAX_PDCCH_CH];
+  kal_uint8     macId;
+  kal_uint8     revCqichCover;
+  kal_uint8     forCpcchWalsh;
+  kal_uint8     forCpcsch;
+  kal_bool      pdchGroupInd;
+
+  kal_uint8     numForSupCode;
+  kal_uint8     forSupCodeChan[CP_MAX_SUP_CODE_CHANNELS];
+} ActivePilot;
+
+
+typedef struct
+{
+  kal_uint8          numPilots;
+  kal_uint8          numForSupCode;
+  ActivePilot    pilot[CP_MAX_ACTIVE_SET];
+} TCActiveList;
+
+
+typedef struct
+{
+  ForSupCodeConfig forSupConfig;
+  kal_bool             useForDuration;
+  kal_uint16           forDuration; /* 20 ms */
+} ForSupCode;
+
+
+typedef struct
+{
+  kal_uint8  revDTXDuration; /* 20 ms */
+  kal_bool   useRevDuration;
+  kal_uint16 revDuration;    /* 20 ms */
+  kal_uint8  numRevCodes;
+  kal_uint8  beginPreamble;
+  kal_uint8  resumePreamble;
+} RevSupCode;
+
+
+typedef struct
+{
+  kal_bool       forLinkedHDM;
+  kal_bool       forIncluded;
+  ForSupCode forSup;
+  kal_bool       revLinkedHDM;
+  kal_bool       revIncluded;
+  RevSupCode revSup;
+} SupCodeCfg;
+
+typedef struct
+{
+   kal_int8	trafficPilot;		/* gain adjustment of the reverse	 */
+             	            /* traffic channel relative to the        */ 
+             	            /* Reverse Pilot Channel power      */
+                           /* (for radio configurations > 2)        */ 
+                           /* (uints = .25 dB)                             */ 
+   kal_bool	defaultRLAG;		/* Default reverse link attribute gain */  
+}  RLGain;
+
+typedef struct
+{
+   kal_uint8	gain;			      /* Forward Power Control                */
+             	            /* Subchannel Relative Gain            */ 
+   kal_bool	useActTime;		   /* KAL_TRUE= takes effect at actionTime*/  
+                           /* KAL_FALSE= takes effect immediately */ 
+   WbiosSystime actionTime;/* Action time (20ms)                        */
+}  FPCGain;
+
+typedef struct
+{
+   kal_bool         channelChange;
+   SysBandChannelT  channel;
+   kal_bool         longCodeChange;
+   Longcode*    lcMask;
+   kal_bool         frameOffsetChange;
+   kal_uint8        frameOffset;
+   kal_uint8        pwrCntlStep;
+   kal_uint8        numPreambleFrames;                         
+   kal_bool 			 srchWinIncl;		/* flag indication if search window is included */
+   kal_uint8			 srchWinA;			/* search window size for active and candidate set */
+   kal_uint8			 srchWinN;			/* search window size for neighbor set */
+   kal_uint8			 srchWinR;			/* search window size for remaining set */
+#ifdef IS2000_REV_0
+   kal_uint8	       chInd;   	      /* Channel Indicator */
+   kal_bool         fpcSubchanGainIncl;
+   FPCGain 	    fpcSubchanGain;  /* Forward Power Control */
+             	                  /* Subchannel Relative Gain */ 
+   RLGain 	    rlgainTrafficPilot;  /* Reverse Link Gain */
+   kal_bool         revFCHGatingMode;	 /* Reverse Eighth Gating Mode Indicator */
+   kal_uint8        revPwrCntlDelay;     /* Reverse Power Control Delay */
+#endif
+}  HHOParms;
+
+
+typedef struct
+{
+   TCActiveList*  activeList;
+   SysBandChannelT    channel;
+   Longcode*      lcMask;
+   kal_uint8          frameOffset;
+   kal_int8           pwrCorrection;
+} PhyInitCfg;
+
+typedef struct
+{
+   TCActiveList*  activeList;
+   kal_bool           supCodeIncluded;
+   kal_bool 			     srchWinIncl;		/* flag indication if search window is included */
+   kal_uint8			     srchWinA;			/* search window size for active and candidate set */
+   kal_uint8			     srchWinN;			/* search window size for neighbor set */
+   kal_uint8			     srchWinR;			/* search window size for remaining set */
+   SupCodeCfg*    supCodeCfg;
+   kal_uint8	         chInd;   	      /* Channel Indicator */
+   kal_bool           fpcSubchanGainIncl;
+   FPCGain 	      fpcSubchanGain;   /* Forward Power Control */
+   kal_bool           revFCHGatingMode; /* Reverse Eighth Gating Mode Indicator */
+   kal_uint8          revPwrCntlDelay;  /* Reverse Power Control Delay */
+} PhySHOCfg;
+
+typedef struct
+{
+   TCActiveList*  activeList;
+   kal_bool           hhoIncluded;
+   HHOParms*      hhoParms;
+   kal_bool           supCodeIncluded;
+   SupCodeCfg*    supCodeCfg;   
+   kal_bool           scrIncluded;
+   kal_bool           fpcSubchanGainIncl;
+   FPCGain 	     fpcSubchanGain;   /* Forward Power Control */
+} PhyHHOCfg;
+
+
+typedef struct
+{
+  kal_uint16   pilotPN;
+  kal_uint8    forSupCodeChan[CP_MAX_SUP_CODE_CHANNELS];
+} ForSupPilot;
+
+
+typedef struct
+{
+  kal_uint8        numSupPilots;
+  kal_uint8        numForSup;
+  ForSupPilot  pilot[CP_MAX_ACTIVE_SET];
+} ForSupCodeList;
+
+
+
+#define CP_MAX_ANALOG_FREQS 7
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint8   sfRxPwrThresh;
+  kal_uint8   numAnalogFreqs;
+  kal_uint16  analogFreq[CP_MAX_ANALOG_FREQS];
+} AnalogSearch;
+
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint8   sfTotalEcThresh;
+  kal_uint8   sfTotalEcIoThresh;
+  kal_uint8   numAnalogFreqs;
+  kal_uint16  analogFreq[CP_MAX_ANALOG_FREQS];
+} CFAnalogSearch;
+
+typedef struct
+{
+  kal_uint16  analogFreq;
+  kal_uint8   signalStrength;
+} CFSrchChanReport;
+
+
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint8   sfTotalRxPwr;
+  kal_uint8   numAnalogFreqs;
+  CFSrchChanReport chan[CP_MAX_ANALOG_FREQS];
+} AnalogSearchReport;
+
+
+typedef struct
+{
+  kal_uint16  pnPhase;
+  kal_uint16  strength;        /* Power of the pilot in Q16 linear units */
+} CFPilotMeasurement;
+
+
+/* CF pilot measurement report provides a list of measurements for all CF pilots */
+typedef struct
+{
+  kal_int16               cfTotalRxPwr;
+  kal_uint8  numPilots;
+  CFPilotMeasurement  pilot[ CP_MAX_CANDIDATE_FREQUENCY_SEARCH_SET ];
+} CFSearchReport;
+
+
+typedef struct
+{
+  kal_uint8        numPilots;
+  NghbrPilot   pilot[CP_MAX_CANDIDATE_FREQUENCY_SEARCH_SET];
+} CFSet;
+
+
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint16  cdmaFreq;
+  kal_uint8   sfTotalECThresh;
+  kal_uint8   sfTotalECIOThresh; 
+  kal_uint8   diffRxPwrThresh;
+  kal_uint8   minTotalPilotEcIo;
+  kal_uint16  cfTAdd;    /* in Q16 linear unit */
+  kal_uint8   cfSrchWinN;
+  NghbrSearchMode  cfNghbrSrchMode;
+
+  kal_uint8   cfWaitTime;
+  kal_uint8   cfPilotInc;
+  kal_uint8   cfSrchWinR;
+
+  /* DAS Merged from 3.0 */
+  kal_uint8   tfWaitTime;
+
+  kal_bool    pilotUpdate;
+  kal_bool    cfSrchOffsetIncl;
+  CFSet   cfSrchSet;
+  CFSet   cfNghbrSet;
+} CDMASearch;
+
+
+/* structure used to provide time information about candidate search from WBIOS */
+typedef struct
+{
+  kal_uint8  totalOffTimeFwd;     /* total time spent off of forward channel */
+  kal_uint8  maxOffTimeFwd;       /* max time spent off of forward channel   */
+  kal_uint8  totalOffTimeRev;     /* total time spent off of reverse channel */
+  kal_uint8  maxOffTimeRev;       /* max time spent off of reverse channel   */
+} CFSearchTimes;
+
+
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint16  cdmaFreq;
+  kal_uint8   sfTotalRxPwr;
+  kal_uint8   cfTotalRxPwr;
+  CFSearchReport report;
+} CDMASearchReport;
+
+
+typedef struct
+{
+  kal_uint16 expectedSid;
+  kal_bool   ignoreCDMA;
+  kal_uint8  sysOrdering;
+  kal_uint8  maxRedirectDelay;  /* only applies to Global redirect  */
+} ServiceRedirAnalog;
+
+
+#define CP_MAX_SERV_REDIR_NUM_CHANS 16 /* 4 bits */
+typedef struct
+{
+  SysCdmaBandT bandClass;
+  kal_uint16 expectedSid;
+  kal_uint16 expectedNid;
+  kal_uint8  numChans;
+  kal_uint16 cdmaChan[CP_MAX_SERV_REDIR_NUM_CHANS];
+} ServiceRedirCDMA;
+
+
+typedef struct
+{
+  kal_bool disjointActiveSet;
+  kal_bool frameOffsetChange;
+  kal_bool channelChange;
+  kal_bool longCodeChange;
+  kal_bool servCfgChange;
+} HOTCReport;
+
+
+/*************************************************************************/
+/************* Information Record Structure Definitions ******************/
+/*************************************************************************/
+
+
+
+typedef struct
+{
+  kal_bool num_incl;
+  kal_bool digitMode;
+  NumberType    type;
+  NumberPlan    plan;
+  kal_uint8   NumChar;
+  kal_uint8 ms_orig_pos_loc_ind;
+  kal_uint8 number[CP_MAX_CALLING_PARTY_NUMBER_SIZE + 1];    
+}GlobalEmergencyCall;
+
+typedef struct
+{
+  kal_bool num_info_incl;
+  NumberType    type;
+  NumberPlan    plan;
+  kal_uint8 numFields;
+  kal_uint8 number[CP_MAX_KEYPAD_FACILITY_SIZE+1];
+}ExtKeypadFacility;
+/*************************************************************************/
+/************** Traffic Channel Message Structure Definitions ************/
+/*************************************************************************/
+
+
+typedef struct
+{
+  kal_bool   useTime;
+  kal_uint8  actionTime;
+
+  kal_uint16 sid;
+  kal_uint8  vmac;
+  kal_uint16 analogChan;
+  kal_uint8  scc;
+  kal_bool   mem;
+  kal_uint8  anChanType;
+  kal_uint8  dsccMsb;
+  SysCdmaBandT bandClass;
+  kal_bool   conRefIncl;
+  kal_uint8  conRef;
+} AnalogHODirData;
+
+
+typedef struct
+{
+  kal_uint8 numDigits;
+  kal_uint8 dtmfOnLength;
+  kal_uint8 dtmfOffLength;
+  char  digits[CP_MAX_BURST_DTMF_DIGITS + 1];  /* Incl NULL terminator */
+  kal_bool  conRefIncl;
+} BDTMFMData;
+
+
+typedef struct
+{
+  kal_bool        useTime;
+  kal_uint8       actionTime;
+  kal_uint8       cfscmSeq;
+  CFSrchType  searchType;
+  kal_bool        alignTiming;
+} CFSCNMData;
+
+
+typedef struct
+{
+  kal_bool        useTime;
+  kal_uint8       actionTime;
+  kal_uint8       cfsrmSeq;
+  CFSrchType  searchType;
+  kal_uint8       searchPeriod;
+  CFSrchMode  searchMode;
+  union
+  {
+    CDMASearch   cdma;
+    AnalogSearch analog;
+  } srch;
+  kal_bool    alignTiming;
+  kal_uint8   searchOffset;
+} CFSRQMData;
+
+
+typedef struct
+{
+  kal_bool   lastSrchMsg;
+  kal_uint8  lastSrchMsgSeq;
+  kal_uint8  searchMode;
+  union
+  {
+    CDMASearchReport   cdma;
+    AnalogSearchReport analog;
+  } srch;
+} CFSrchReportData;
+
+
+typedef struct
+{
+  kal_bool           alignTiming;
+  kal_uint8          lastCfsrmSeq;
+  CFSearchTimes  srchTimes;
+} CFSrchRespData;
+
+
+typedef struct
+{
+  kal_bool   ackRequired;
+  kal_uint8  msgNumber;
+  kal_uint8  burstType;
+  kal_uint8  numMsgs;
+  kal_uint8  numFields;
+  kal_uint8  data[CP_MAX_DATA_BURST_CHAR];
+  kal_bool   encoded;
+  kal_bool   digitMode;
+  char*  digits;
+  kal_uint8  numDigits;
+} DataBurstData;
+
+
+typedef struct
+{
+  kal_uint8           pilotInc;
+  NghbrSearchMode nghbrSrchMode;
+  kal_uint8           srchWinN;
+  kal_bool  useTime;
+  kal_uint8 globTimeIncl;
+  kal_uint8 globTxDuration;
+  kal_uint8 globTxPeriod;
+  
+  kal_uint8           numNghbr;
+  NghbrPilot      pilot[CP_MAX_NEIGHBOR_SET];
+
+  kal_bool  resqEnabled;
+
+} ENLUMData;
+
+typedef struct {
+    kal_bool conRefIncl;
+    kal_uint8 conRef;
+    kal_uint8 numRec;
+    FORInfoData infoData;
+} ExtFORInfoData;
+
+
+#define MAX_NUM_RC_PARAMS_RECORDS  3
+
+typedef struct {
+    kal_uint16 pilotPn;
+    kal_uint8  qofSetInUse;
+    kal_bool   revSch0AckBitInc;
+    kal_uint8  revSch0AckChWalsh;
+    kal_uint8  revSch0AckBit;
+    kal_bool   revSch1AckBitInc;
+    kal_uint8  revSch1AckChWalsh;
+    kal_uint8  revSch1AckBit;
+    kal_bool   forFchCcshInterleaverType;
+}RcParmRec;
+
+typedef struct 
+{
+    kal_bool      useTime;
+    kal_uint8     actionTime;
+    
+    kal_bool      forFchAckMaskRlBlankingInc;
+    kal_uint16    forFchAckMaskRlBlanking;
+
+    kal_bool      forFchAckMaskNoRlBlankingInc;
+    kal_uint16    forFchAckMaskNoRlBlanking;
+
+    kal_bool      revFchAckMaskInc;
+    kal_uint16    revFchAckMask;
+
+    kal_bool      forSchAckMaskRlBlankingInc;
+    kal_uint16    forSchAckMaskRlBlanking;
+  
+    kal_bool      forSchAckMaskNoRlBlankingInc;
+    kal_uint16    forSchAckMaskNoRlBlanking;
+  
+    kal_bool      revSchAckMaskInc;
+    kal_uint16    revSchAckMask;
+    
+    kal_uint8     forN2MInd;
+    kal_uint8     fpcMode;
+    kal_uint8     rpcMode;
+    kal_uint8     powerCntlStep;
+    kal_uint8     forFchBlankingDutyCycle;
+    kal_uint8     revFchBlankingDutyCycle;
+
+    kal_bool      revAckchGainAdjAcs1Inc;
+    kal_int8     revAckchGainAdjAcs1;
+    kal_bool      revAckchGainAdjAcs2plusInc;
+    kal_int8     revAckchGainAdjAcs2plus;
+    
+    kal_uint8     numRcParamsRecs;
+    RcParmRec rcParmInfo[MAX_NUM_RC_PARAMS_RECORDS];
+
+}RCPMData;
+
+typedef struct 
+{
+  kal_bool        forSchDelayedAckMaskIncl;
+  kal_uint8       forSchDelayedAckMask;
+  kal_bool        revSchDelayedAckMaskIncl;
+  kal_uint8       revSchDelayedAckMask;
+} DelayedARQInfoRec;
+
+typedef struct 
+{
+  SysCdmaBandT  band;
+  kal_uint16        revChannel;
+} RevChannelInfoRec;
+
+typedef struct
+{
+  kal_bool  useTime;
+  kal_uint8 actionTime;
+
+  ForwardOrderCode order;
+
+  kal_uint8 addRecordLen;
+  kal_uint8 ordq;
+  
+  kal_uint8 minPilotPwrThresh;
+  kal_uint8 minPilotECIOThresh;
+  kal_bool  inclSetpt;
+  kal_bool  conRefIncl;
+  kal_uint8 conRef;
+  kal_uint8 releaseType;
+  kal_uint16  sid;
+  kal_uint16  nid;
+  kal_bool  freqIncl;
+  kal_uint16  cdmaFreq;
+  SysCdmaBandT bandClass;
+  kal_uint8 pageCh;
+  kal_uint8 prat;
+  kal_uint8 sr1BcchCodeChanNonTd;
+  kal_bool  sr1CratNonTd;
+  kal_uint8 sr1BratNonTd;
+  kal_uint8 sr1TdMode;
+  kal_uint8 sr1BcchCodeChanTd;
+  kal_bool  sr1CratTd;
+  kal_uint8 sr1BratTd;
+} FTCORDMData;
+
+
+typedef struct
+{
+  kal_uint16 sid;
+  kal_uint16 nid;
+
+  kal_uint8  srchWinA;
+  kal_uint8  srchWinN;
+  kal_uint8  srchWinR;
+
+  kal_uint8  tAdd;
+  kal_uint8  tDrop;
+  kal_uint8  tComp;
+  kal_uint8  tTDrop;
+
+  kal_uint8  nghbrMaxAge;
+
+  kal_uint8  networkPRev;
+
+  kal_uint8  softSlope;
+  kal_int8   addIntercept;
+  kal_int8   dropIntercept;
+
+  kal_uint8  packetZoneID;
+
+  kal_uint8  extension;
+  kal_uint8  tMulchan;
+  kal_uint8  beginPreamble;
+  kal_uint8  resumePreamble;
+  kal_bool   tSlottedIncl;
+  kal_uint8  tSlotted;
+  kal_bool   encSupported;
+  kal_uint8  sigEncryptSup;
+  kal_uint8  uiEncryptSup;
+  kal_bool   csSupported;
+  kal_bool   tTdropRangeIncl;
+  kal_bool   tTdropRange;
+  kal_bool   forPdchSupported;
+} ITSPMData;
+
+typedef enum
+{
+	UHDM,
+	GHDM,
+	EHDM,
+    MUHDM
+} HoMsgType;
+
+typedef struct
+{
+  HoMsgType msgType;  /* UHDM / GHDM / EHDM / MUHDM */
+
+  kal_bool    useTime;
+  kal_uint8   actionTime;
+
+  kal_uint8   hdmSeq;
+
+  kal_bool   serviceIncluded;
+  kal_uint8  servConSeq;
+  ServiceConfiguration servCfg;
+  kal_bool   nnServiceIncluded;
+  NNServiceConfiguration nnServCfg;
+
+  kal_bool    searchIncluded;
+  kal_uint8   srchWinA;
+  kal_uint8   srchWinN;
+  kal_uint8   srchWinR;
+  kal_uint8   tAdd;
+  kal_uint8   tDrop;
+  kal_uint8   tComp;
+  kal_uint8   tTdrop;
+  kal_uint8   softSlope;
+  kal_int8    addIntercept;
+  kal_int8    dropIntercept;
+
+  kal_bool    extraParms;
+  kal_uint8   pRev;
+  kal_uint8   packetZoneID;
+  kal_uint8   frameOffset;
+  kal_bool    privateLCM;
+  kal_uint8   resetL2;
+  kal_uint8   resetFPC;
+  kal_bool    servNegType;
+  kal_uint8   encryptMode;
+  kal_bool    nomPwrExt;
+  kal_int8    nomPwr;
+  kal_uint8   numPreamble;
+  SysCdmaBandT bandClass;
+  kal_uint16  cdmaFreq;
+  kal_bool    returnIfHandoffFail;
+  kal_bool    completeSearch;
+  kal_bool    periodicSearch;
+
+  kal_bool    revParmsIncluded;
+  kal_uint8   tMulchan;
+  kal_uint8   beginPreamble;
+  kal_uint8   resumePreamble;
+
+  kal_bool    usePwrCntlStep;
+  kal_uint8   pwrCntlStep;
+
+  kal_bool    rcvdAddFields;
+  kal_uint8   addPRev;
+
+  FTCActiveList active;
+  kal_bool          parmIncl;
+  kal_uint8         chInd;      /* Channel Indicator                  */
+  kal_bool          continuesRevPilot;
+  FPCGain       fpcGain;  	 /* Forward power control subchannel   */
+					 				 /* relative gain                      */
+  RLGain        rlGain;		 /* reverse traffic gain               */
+  kal_bool  revFCHGatingMode;	 /* Reverse Eighth Gating Mode         */
+                            /* Indicator   	                     */
+  kal_bool  revPwrCntlDelayIncl;/* Reverse Power Control Delay        */
+                            /* Included                           */
+  kal_uint8 revPwrCntlDelay;    /* Reverse Power Control Delay        */
+  kal_bool   schIncl;      /* Supplemental Channel included      */
+  SchCfg schCfg;	     /* Supplemental Channel               */
+
+  /* Prev >= 7 */
+  kal_bool   threexflOnexrlIncl;	     
+  kal_bool   syncIdIncl;      
+  kal_bool   ccInfoIncl;      
+  kal_bool   csSupported;      
+  kal_bool   threexFchInfoIncl;
+  kal_bool   threexDcchInfoIncl;
+
+  /* Prev >= 9 */
+  kal_bool   chmSuppported;
+  kal_bool   cdmaOffTimeRepSupInd;
+  kal_bool   cdmaOffTimeRepThresholdUnit;
+  kal_uint8   cdmaOffTimeRepThreshold;
+  kal_bool   releaseToIdleInd;      
+  kal_bool   msgIntegritySup;      
+  kal_bool   gen2gKey;      
+  kal_bool   registerInIdle;
+  
+  kal_bool   plcmTypeIncl;
+  kal_uint8   plcmType;
+  kal_uint8   plcm39[PLCM39_SIZE];
+  kal_bool   tTdropRangeIncl;      
+  kal_bool   ccshIncluded;    
+
+  /* PDCH params */
+  kal_bool   forPdchSupported;      
+  TCExtChInd extChInd;      
+  kal_uint8  rlgainAckcqichPilot;      
+  kal_bool   pdchControlHold;      
+  kal_bool   fullCiFeedbackInd;      
+  kal_uint8  revCqichFrameOffset;      
+  kal_uint8  revCqichReps;      
+  kal_uint8  revAckchReps;      
+  kal_bool   pdchGroupIndIncl;      
+  kal_bool   forPdchParamsIncl;      
+  kal_uint8  numSoftSwitchingFrames;      
+  kal_uint8  numSofterSwitchingFrames;      
+  kal_uint8  numSoftSwitchingFramesChm;      
+  kal_uint8  numSofterSwitchingFramesChm;      
+  kal_uint8  numSoftSwitchingSlots;      
+  kal_uint8  numSofterSwitchingSlots;      
+  kal_uint8  numSoftSwitchingSlotsChm;      
+  kal_uint8  numSofterSwitchingSlotsChm;      
+  kal_uint8  pdchSoftSwitchingDelay;      
+  kal_uint8  pdchSofterSwitchingDelay;    
+  kal_bool   forPdchCommonParams;      
+  kal_uint8  walshTableId;    
+  kal_uint8  numPdcch;    
+  kal_uint8  forPdcchWalsh[CP_MAX_PDCCH_CH];
+} PHDMData;
+
+typedef struct
+{
+  TCActiveList active;
+
+  kal_bool   serviceIncluded;
+  kal_uint8  servConSeq;
+  ServiceConfiguration servCfg;
+  NNServiceConfiguration nnServCfg;
+  kal_bool   supCodeChanParmsIncluded;
+  kal_bool   forIncluded;
+  kal_uint8  forSupConfig;
+  kal_bool   useForDuration;
+  kal_uint8  forDuration;
+  kal_bool   revIncluded;
+  kal_uint8  revDTXDuration;
+  kal_bool   clearRetryDelay;
+  kal_bool   useRevDuration;
+  kal_uint8  revDuration;
+  kal_uint8  numRevCodes;
+  kal_bool   useTAddAbort;
+} HDMData;
+
+
+typedef struct
+{
+  kal_uint16 sid;
+  kal_uint16 nid;
+  kal_uint16 regZone;
+  kal_uint8  totalZones;
+  kal_uint8  zoneTimer;
+  kal_bool   multSids;
+  kal_bool   multNids;
+  kal_int32  baseLat;
+  kal_int32  baseLong;
+  kal_uint16 regDist;
+} MSRegisteredData;
+
+
+typedef struct
+{
+  kal_uint8  rejectedType;
+  kal_uint8  rejectedOrder;
+  kal_uint8  rejectedOrdq;
+  kal_uint16 rejectedParamId;
+  kal_uint8  rejectedRecord;
+  kal_uint8	 rejectedConRef;
+  kal_uint8	 rejectedTag;
+} MSRejectOrderData;
+
+
+typedef struct
+{
+  kal_uint8  pilotInc;
+  kal_uint8  numNghbr;
+  kal_uint16 nghbrPN[CP_MAX_NEIGHBOR_SET];
+} NLUMData;
+
+
+typedef struct
+{
+  kal_bool extended;
+  union
+  {
+    NLUMData  nlum;
+    ENLUMData enlum;
+  } type;
+} NLUMUData;
+
+
+typedef struct
+{
+  kal_uint8  schId;
+  kal_uint8  fpcSchFer;
+  kal_uint8  fpcSchMinSetPt;
+  kal_uint8  fpcSchMaxSetPt;
+} SupChanRec;
+
+typedef struct
+{
+  kal_uint8      pwrCntlStep;
+  kal_bool       useTime;
+  kal_uint8      actionTime;
+  kal_bool       fpcIncl;
+  kal_bool       fpcPriChan;
+  kal_uint8      fpcMode;
+  kal_uint8      fpcModeNoSch;
+  kal_bool       fpcOlpcFchIncl;
+  kal_uint8      fpcFchFer;
+  kal_uint8      fpcFchMinSetPt;
+  kal_uint8      fpcFchMaxSetPt;
+  kal_bool       fpcOlpcDcchIncl;
+  kal_uint8      fpcDcchFer;
+  kal_uint8      fpcDcchMinSetPt;
+  kal_uint8      fpcDcchMaxSetPt;
+  kal_bool       fpcSecChan;
+  kal_uint8      numSup;
+  SupChanRec supChanRec[2];
+  kal_bool       fpcThreshIncl;
+  kal_uint8      fpcSetPtThresh;
+  kal_bool       fpcThreshSchIncl;
+  kal_uint8      fpcSetPtThreshSch;
+  kal_bool       rpcIncl;
+  kal_uint8      rpcNumRec;
+  kal_uint8      rpcAdjRecType[3];
+  kal_uint8      rpcAdjRecLen[3];
+  /* TYPE 0*/
+  kal_bool       fchIncl;
+  kal_int8       fchChanAdjGain;
+  kal_bool       dcchIncl;
+  kal_int8       dcchChanAdjGain;
+  kal_bool       sch0Incl;
+  kal_int8       sch0ChanAdjGain;
+  kal_bool       sch1Incl;
+  kal_int8       sch1ChanAdjGain;
+  kal_bool	     revAckchIncl;
+  kal_int8	     revAckchChanAdjGain;
+  kal_bool	     revCqichIncl;
+  kal_int8	     revCqichChanAdjGain;
+  /*TYPE 1*/
+  kal_uint8      rlAttAdjGainType;
+  kal_bool       rc3Rc520MsIncl;
+  kal_int8       nomAttGainAdj[21];
+  kal_int8       pilotRefLevelAdj[21]; 
+  kal_bool       FiveMsIncl;
+  /*TYPE 2*/
+  kal_bool       codeType;
+  kal_bool       rc4Rc620MsIncl;
+  kal_int8       nomAttGainAdjTurbo[12];
+  kal_int8       pilotRefLevelAdjTurbo[12];
+  kal_bool       rc3Rc540MsIncl;
+  kal_bool       rc4Rc640MsIncl;
+  kal_bool       rc3Rc580MsIncl;
+  kal_bool       rc4Rc680MsIncl;
+  /*TYPE 3*/
+  kal_bool       rlCqichAttAdjGainType;
+  kal_bool       rlCqichAttAdjGainHighIncl;
+  kal_int8       rlCqichAttAdjGainHigh;
+  kal_int8       pilotRefLevelAdjRcqichGainHigh; 
+  kal_bool       rlCqichAttAdjGainLowIncl;
+  kal_int8       rlCqichAttAdjGainLow;
+  kal_int8       pilotRefLevelAdjRcqichGainLow; 
+ 
+} PCNMData;
+
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool		SchId;	
+	kal_uint8		FpcSchCurrSetPt;	
+} PACKED_POSTFIX FpcSchReportT;
+
+typedef PACKED_PREFIX struct
+{
+	kal_bool		  FchIncl;	
+	kal_uint8		  FpcFchCurrSetPt;	
+	kal_bool		  DcchIncl;	
+	kal_uint8		  FpcDcchCurrSetPt;	
+	kal_uint8		  NumSup;
+	FpcSchReportT FpcSch[2];	
+} PACKED_POSTFIX OuterLoopRepData;
+
+typedef struct
+{
+  kal_uint8  errorsDetected;
+  kal_uint16 pwrMeasFrames;
+  kal_uint8  lastHdmSeq;
+  kal_bool   dcchPwrMeasIncl;
+  kal_uint16 dcchPwrMeasFrames;
+  kal_uint8  dcchErrorsDetected;
+  kal_bool   schPwrMeasIncl;
+  kal_uint8  schId;
+  kal_uint16 schPwrMeasFrames;
+  kal_uint16 schErrorsDetected;
+} PwrMeasRepData;
+
+
+typedef struct
+{
+  kal_bool   useTime;
+  kal_uint8  actionTime;
+  kal_uint8  actionTimeFrame;
+  kal_uint8  pufSetupSize;
+  kal_uint8  pufPulseSize;
+  kal_uint16 pufInterval;
+  kal_uint8  pufInitPwr;
+  kal_uint8  pufPwrStep;
+  kal_uint8  pufTotalPufProbes;
+  kal_uint8  maxPwrPuf;
+  kal_bool   pufFreqIncl;
+  SysCdmaBandT pufBandClass;
+  kal_uint16 pufCDMAFreq;
+} PwrUpFuncData;
+
+
+typedef struct
+{
+  kal_bool   locInd;
+  kal_uint32 msLat;
+  kal_uint32 msLong;
+  kal_uint32 msLocTstamp;
+} PwrUpFuncCompData;
+
+
+typedef struct
+{
+  kal_bool    digitMode;
+  kal_uint8   numFields;
+  kal_uint8*  digits;
+  kal_bool                multipleCallingPartyNum;
+  CallingPartyNumber  callingPartyNum;
+  kal_bool                sendCallingPartySubaddr;
+  Subaddress          callingPartySubaddr;
+  kal_bool                sendCalledPartySubaddr;
+  Subaddress          calledPartySubaddr;
+} OrigContData;
+
+
+/* The maximum number of parameters possible in a Parameters **
+** Response message is 2016 / (16 + 10 + 8) where 8 is the   **
+** parameter length (Assumption - most likely overkill!!!)   */
+#define CP_MAX_PARAMETER_IDS    60 
+typedef struct
+{
+  kal_uint8  numParmIds;
+  kal_uint8  numGroups;
+  kal_uint16 parameterID[CP_MAX_PARAMETER_IDS];
+} RetrieveParmsData;
+
+
+typedef struct
+{
+  kal_bool  encoded;
+  char  digit;
+} RTCContDTMFData;
+
+
+typedef struct
+{
+  kal_bool  encoded;
+  kal_uint8 numDigits; 
+  kal_uint8 dtmfOnLength;
+  kal_uint8 dtmfOffLength;
+  char  digits[CP_MAX_BURST_DTMF_DIGITS + 1];  /* Incl NULL terminator */
+  kal_bool  conRefIncl;
+} RTCBurstDTMFData;
+
+
+typedef struct
+{
+  kal_bool   sendFeatureIndicator;
+  kal_uint8  feature;
+  kal_bool   sendKeypadFacility;
+  kal_int8   keypadFacility[CP_MAX_DISPLAY_SIZE  +  1];  /* Incl NULL terminator */
+  kal_bool   sendCalledPartyNumber;
+  CalledPartyNumber calledPartyNumber;
+  kal_bool   sendCallingPartyNumber;
+  CallingPartyNumber callingPartyNumber;
+  kal_bool   sendConnectedNumber;
+  CallingPartyNumber connectedNumber;   /* Same format as CallingPartyNumber */
+  kal_bool   sendCalledPartySubaddress;
+  Subaddress calledPartySubaddress;
+  kal_bool   sendCallingPartySubaddress;
+  Subaddress callingPartySubaddress;
+  kal_bool   sendConnectedSubaddress;
+  Subaddress connectedSubaddress;
+  kal_bool sendGlobalEmergencyCall;
+  GlobalEmergencyCall  EmergencyNum;
+  kal_bool   sendExtKeypadFacility;
+  ExtKeypadFacility ExtKeypadFac;
+} RTCFlashData;
+
+
+typedef struct
+{
+  ReverseOrderCode  order;
+  kal_bool          sendOrdq;
+  kal_uint8         ordq;
+  kal_bool          sendAddRec;
+} RTCOrderData;
+
+
+typedef struct
+{
+  kal_bool   useRetryDelay;
+  kal_uint8  retryDelay;
+
+  kal_bool   revIncluded;
+  kal_uint8  revDTXDuration;
+  kal_bool   explRevStartTime;
+  kal_uint8  revStartTime;
+  kal_bool   useRevDuration;
+  kal_uint8  revDuration;
+  kal_bool   useRevHDMSeq;
+  kal_uint8  revLinkedHDMSeq;
+  kal_uint8  numRevCodes;
+  kal_bool   useTAddAbort;
+  kal_bool   useScrmSeqNum;
+  kal_uint8  scrmSeqNum;
+  kal_bool   revParmsIncluded;
+  kal_uint8  tMulchan;
+  kal_uint8  beginPreamble;
+  kal_uint8  resumePreamble;
+
+  kal_bool   forIncluded;
+  kal_uint8  forSupConfig;
+  kal_bool   explForStartTime;
+  kal_uint8  forStartTime;
+  kal_bool   useForDuration;
+  kal_uint8  forDuration;
+  kal_bool   useForHDMSeq;
+  kal_uint8  forLinkedHDMSeq;
+  ForSupCodeList forSup;
+} SCAMData;
+
+#define MAX_NUM_CALLS_ASSIGNED 4
+typedef struct
+{
+  kal_uint8   conRef;
+  kal_bool    responseInd;
+  kal_uint8   tag;
+  kal_bool    bypassAlertAnswer;
+} CallsRecord;
+
+typedef struct
+{
+  kal_bool   useTime;
+  kal_uint8  actionTime;
+  kal_uint8  servConSeq;
+  kal_bool   rcvdServCfg;
+  kal_bool   syncIdIncl;
+  kal_uint8  syncIdLen;
+  kal_uint8  syncId[15];
+  kal_uint8  srId;
+  kal_bool   useType0Plcm;
+  ServiceConfiguration servCfg;
+  kal_bool                   useOldServConfig;
+  NNServiceConfiguration nnServCfg;
+  kal_bool                   ccInfoIncl;
+  kal_uint8                  numCallsAssign;
+  CallsRecord            callsInfo[MAX_NUM_CALLS_ASSIGNED];
+  kal_bool   rcvdNNServCfg;
+} SCNMData;
+
+
+typedef struct
+{
+  kal_bool   useTime;
+  kal_uint8  actionTime;
+  kal_uint8  conRef;
+  kal_uint16 serviceOption;
+  kal_uint8  ctlRecLen;
+  kal_uint8  ctlRec[MAX_SERV_OPT_CNTL_RECORD_LEN];
+} SOCMFTCData;
+
+
+typedef struct
+{
+  kal_uint8   conRef;
+  kal_uint16  serviceOption;
+  kal_uint8   ctlRecLen;
+  kal_uint8*  ctlRec;
+} SOCRTCData;
+
+
+/* Separated the union from structure
+ServiceRedirData since union is also used
+in Extended Global Service Redirect Message */
+typedef union
+{
+    ServiceRedirAnalog analog;
+    ServiceRedirCDMA   cdma;
+} RedirectType;
+
+typedef struct
+{
+  kal_bool   global;                   /* indicates a global redirection */
+  kal_uint16   redirectAccolc;
+  kal_bool   returnIfFail;
+  kal_bool   deleteTMSI;
+  kal_bool   exclPRevMs;
+  kal_bool   redirectType;
+  kal_uint8  recordType;
+  RedirectType  type;
+} ServiceRedirData;
+
+
+typedef struct
+{
+  kal_uint8  servReqSeq;
+  kal_uint8  reqPurpose;
+  kal_bool   servCfgPresent;
+  ServiceConfiguration servCfg;
+} SRQMData;
+
+
+typedef struct
+{
+  kal_uint8  servReqSeq;
+  kal_uint8  respPurpose;
+  kal_bool   servCfgPresent;
+  ServiceConfiguration servCfg;
+} SRPMData;
+
+
+typedef struct
+{
+  kal_uint8  temp;
+} SetParmsData;
+
+/* For storing the Information records received in the Status Request Message */
+#define MAX_NUM_STATUS_REQ_RECORDS  16
+
+typedef struct
+{
+   QualInfoType qualInfoType;
+   SysCdmaBandT bandClass;
+   OpMode       opMode;
+   kal_uint8        numFields;
+   kal_uint8        recType[MAX_NUM_STATUS_REQ_RECORDS];
+   kal_bool         rcBitMapCapInd; 
+} StatusReqData;
+
+
+typedef struct
+{
+  kal_uint8  tmsiZoneLen;
+  kal_uint8  tmsiZone[CP_MAX_TMSI_ZONE_LEN];
+  kal_uint32 tmsiCode;
+  kal_uint32 tmsiExpTime;
+} TMSIAssignData;
+
+
+/* The following definition is for ESCAM */
+
+typedef HONghbrPilotRec ActivePilotRec;
+
+typedef struct
+{
+  kal_uint8         revSchId;
+  kal_uint8         revWalshId;
+  SchRateIndex  revSchRate;
+} RevCfgRec;
+
+typedef struct
+{
+  kal_uint16            pilotPn;
+  kal_bool              addPilotRecIncl;
+  PilotRecType      activePilotRecType;
+  kal_uint8             recordLen;
+  ActivePilotRec    activePilotRec;
+  kal_uint16            forSchCcIndex;
+  kal_uint8             qofMaskIdSch;
+} SupShoRec;
+
+
+typedef struct
+{
+  kal_uint8         forSchId;
+  kal_uint8         scclIndex;
+  SchRateIndex  forSchRate;
+  kal_uint8         numSupSho;
+  SupShoRec     supSho[ CP_MAX_SUP_SHO ];
+} ForSchCfg;
+
+typedef struct
+{
+  kal_uint8     schId;
+  kal_uint8     fpcSchFer;
+  kal_int16     fpcSchInitSetpt;
+  kal_uint8     fpcSchMinSetpt;
+  kal_uint8     fpcSchMaxSetpt;
+} SupRec;
+
+typedef struct
+{
+  kal_uint8     schId;
+  kal_int8      rlgainSchPilot;
+} RpcSupRec;
+
+typedef struct
+{
+  kal_uint8     forSchId;
+  kal_uint8     num3xRec;
+  kal_uint8     scclIndex[ CP_MAX_3X_REC ];
+} ThreexCfgRec;
+
+typedef struct
+{
+  kal_bool      threexSchLowIncl;
+  kal_uint8     qofMaskIdSchLow;
+  kal_uint16    codeChanSchLow;
+  kal_bool      threexSchHighIncl;
+  kal_uint8     qofMaskIdSchHigh;
+  kal_uint16    codeChanSchHigh;
+} ThreexRec;
+
+typedef struct
+{
+  kal_uint8         startTimeUnit;
+  kal_uint8         revSchDtxDuration;
+  kal_bool          useTAddAbort;
+  kal_bool          useScrmSeqNum;
+  kal_uint8         scrmSeqNum;
+  kal_bool          addInfoIncl;
+  kal_uint8         fpcPriChan;
+
+  kal_bool          revCfgIncluded;
+
+  kal_uint8         numRevCfgRecs;
+  RevCfgRec     revCfgRecs[ CP_MAX_REV_CFG_RECS ];
+
+  kal_uint8         numRevSch;
+  RevSch        revSch[ CP_MAX_REV_SCH ];
+
+  kal_bool          forCfgIncluded;
+
+  kal_bool          forSchFerRep;
+  kal_uint8         numForCfgRecs;
+  ForSchCfg     forSchCfg[ CP_MAX_FOR_CFG_RECS ];
+
+  kal_uint8         numForSch;
+  ForSch        forSch[ CP_MAX_FOR_SCH ];
+
+  kal_bool          fpcIncl;
+  TCFpcMode     fpcModeSch;
+  kal_uint8         fpcSchInitSetptOp;
+  kal_uint8         fpcSecChan;
+  kal_uint8         numSup;
+  SupRec        supRec[ CP_MAX_SUP ];
+
+  kal_bool          fpcThreshSchIncl;
+  kal_uint8         fpcSetptThreshSch;
+
+  kal_bool          rpcIncl;
+  kal_uint8         rpcNumSup;
+  RpcSupRec     rpcSupRec[ CP_MAX_RPC_NUM_SUP ];
+  /* Following new fields have been added to suppport IS2000 revisions > REV0. */
+  kal_bool          threexSchInfoIncl;
+  kal_bool          ccshIncluded;
+  kal_bool          forSchCcIncl;
+  kal_bool          revSchCcIncl;
+} ESCAMData;
+
+/* The following definition is for RAM */
+typedef struct
+{
+  kal_bool      useTime;
+  kal_uint8     actionTime;
+  kal_uint8     fpcPriChan;
+} RAMData;
+
+
+/* The following definition is for ERM */
+typedef struct
+{
+  kal_bool          useTime;
+  kal_uint8         actionTime;
+  TCChInd       chInd;
+  kal_bool          gatingRateIncl;
+  TCGatingRate  pilotGatingRate;
+
+  kal_bool          useExtChInd;
+  TCExtChInd    extChInd;
+
+  kal_bool          pdchControlHold;
+
+  kal_bool          switchingParamsIncl;
+  kal_uint8         numSoftSwitchingFramesChm;
+  kal_uint8         numSofterSwitchingFramesChm;
+} ERMData;
+
+
+/* The following definition is for RATCHGM */
+typedef struct
+{
+   kal_bool     rlCqichAttAdjGainType;
+   kal_bool     rlCqichAttAdjGainHighIncl;
+   kal_int8     rlCqichAttAdjGainHigh;
+   kal_bool     rlCqichAttAdjGainLowIncl;
+   kal_int8     rlCqichAttAdjGainLow;
+
+} CqichAttAdjGainRec;
+
+
+typedef struct
+{
+   kal_bool     useTime;
+   kal_uint8    actionTime;
+   kal_bool     revCqichRateChangeIncl;
+   kal_bool     fullCiFeedbackInd;
+   kal_uint8    revCqichReps;
+   kal_bool     switchingParamsIncl;
+   kal_uint8    numSoftSwitchingFrames;
+   kal_uint8    numSofterSwitchingFrames;
+   kal_uint8    numSoftSwitchingFramesChm;
+   kal_uint8    numSofterSwitchingFramesChm;
+   kal_bool     rlCqichAttAdjGainIncl;
+   kal_uint8    numRecs;
+   CqichAttAdjGainRec CqichAttAdjGainRec[ CP_MAX_CQICH_ATT_ADJ_GAIN_REC ];
+   kal_bool     revAckchRateChangeIncl;
+   kal_uint8    revAckchReps;
+
+} RATCHGMData;
+
+
+typedef union
+{
+  AnalogHODirData  ahdmData;
+  BDTMFMData       bdtmfmData;
+  CFSRQMData       cfsrqmData;
+  CFSCNMData       cfscnmData;
+  DataBurstData    dbmData;
+  FORInfoData      infoData;
+  FTCORDMData      ordmData;
+  ITSPMData        itspmData;
+  MSRegisteredData msrmData;
+  NLUMUData        nlumuData;
+  PCNPMData        pcnpmData;
+  PCNMData         pcnmData;
+  SCAMData         scamData;
+  SOCMFTCData      socmData;
+  ServiceRedirData srdmData;
+  SRQMData         srqmData;
+  SRPMData         srpmData;
+  SCNMData         scnmData;
+  StatusReqData    strqmData;
+  TMSIAssignData   tasmData;
+  HDMData          hdmData;
+  RAMData          ramData;
+  ERMData          ermData;
+  ESCAMData        escamData;
+  RATCHGMData      ratchgmData;
+  ExtFORInfoData   extInfoData;
+  RCPMData         rcpmData;
+} RxMsg;
+
+#endif  /* _TC_MSG_FMT_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_API.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_API.H
new file mode 100644
index 0000000..8a25aff
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_API.H
@@ -0,0 +1,2101 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_api.h
+ * Project:         SCC
+ * Original Author: MMS
+ * Creation Date:   Feb. 23/1999
+ *
+ * Description:  SCC Application Programming Interface (API) declaration
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * $Id: SCC_API.H 1.5 2006/03/21 16:45:42 mclee Exp $
+ * 
+ * $Log: SCC_API.H $
+ *
+ * 09 18 2020 tina.ma
+ * [MOLY00504457] [Titan93] ESVCINFO issue fix
+ * 	
+ * 	.
+ *
+ * 09 14 2020 tina.ma
+ * [MOLY00504457] [Titan93] ESVCINFO issue fix
+ * 	
+ * 	.
+ *
+ * 10 18 2017 lemon.xiong
+ * [MOLY00247250] [BIANCO][MT6763][C2K]Merge cl to umoly	
+ * 	update for scc ut case
+ *
+ * 09 01 2017 lemon.xiong
+ * [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ * 	
+ * 	ut code
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 06 22 2017 gavin.zhang
+ * [MOLY00258188] [TE CAT][Bianco][C2K][MP1][N1] Externel (EE),0,0,99,/data/core/,1,modem,Trigger time:[2017-06-10 15:25:44.599061] md1:(MCU_core0.vpe0.tc0(VPE0)) [Fatal error(task)] err_code1:0x00000305 err_code2:0x8888016F err_code3:0xCCCCCCCC MD Offender:CPSW
+ * 	
+ * 	.
+ *
+ * 06 01 2017 johnny.ding
+ * [MOLY00254250] [BIANCO][MT6763][C2K][RDIT][Stress][FT][KAL][UE][core0,vpe0,tc0(vpe0)] Fatal Error (0x604, 0xffffffde, 0xcccccccc) - CPSW
+ * 	
+ * 	stop timer in PSW context, should not in HLP context.
+ *
+ * 12 01 2016 sue.zhong
+ * [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ * Update C2K source
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.4.1.2  2006/03/20 18:01:57  winston
+ * Fix CR7411: add function sccCpNoSvcInd()
+ * Revision 1.5  2006/03/21 16:45:42  mclee
+ * Add fromAccess parameter to cpCpIdle() prototype needed by data services.  Data services uses this flag to detect dormant mode scenarios.
+ * Revision 1.4  2006/01/11 15:23:14  blee
+ * Modified function paramter
+ * Revision 1.3  2004/09/28 15:29:56  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:17  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2  2004/02/10 12:55:27  bcolford
+ * Merged CBP4.0 Release 8.05.0 changes.
+ * Revision 1.16  2003/12/11 14:29:57  hhong
+ * Added parameter Reason for sccPsReleaseReq( ).
+ * Revision 1.15  2003/11/21 20:29:31  hhong
+ * Added indication of CDMA v.s. AMPS as a argument for sccCpIdle( ).
+ * Revision 1.14  2002/08/08 15:08:20  mclee
+ * Add prototype sccLocReleaseReq(). Change sccCp801Discard name to sccLocServDiscardSession()
+ * Revision 1.13  2002/06/06 14:53:08  bsharma
+ * Updated Copyright info.
+ * Revision 1.12  2002/05/07 16:31:58  byang
+ * Add function prototype declaration for
+ * sccGetDefaultServiceConfiguration().
+ * Revision 1.11  2002/04/18 09:53:21  mclee
+ * Add location service prototypes
+ * Revision 1.10  2002/02/27 20:53:57  mclee
+ * IS801 APIs
+ * Revision 1.9  2002/02/14 16:29:13  byang
+ * CR373: Add function prototype declaration for 
+ * sccIsServOptionAttributeAvailable().
+ * Revision 1.8  2001/12/14 17:14:24  mclee
+ * prototype sccGetVocoder().
+ * Revision 1.7  2001/11/29 14:11:46  kmar
+ * New function prototype, sccSmsSaveChannel().
+ * Revision 1.6  2001/10/23 16:00:44  byang
+ * Modified sccCpGetServCfgNoConnections() parameters to
+ * accept a target forward and reverse RC.
+ * Revision 1.5  2001/09/24 15:41:33  kmar
+ * Update SMS to latest in CBP3.
+ * Removed Digits parameter from sccSmsTxReq().
+ * Revision 1.4  2001/09/24 09:26:42  mclee
+ * SCC PSW 3 to 4 merge
+ * Revision 1.3  2001/07/02 14:27:35  kmar
+ * Update SCC and SMS to CBP3 v360.
+ * ToNegotiate and Info Rec support in Orig Cont support
+ * added, but currently #define'd out.
+ * Revision 1.2  2001/05/16 11:26:38  yfang
+ * added data service back
+ * Revision 1.1  2001/01/17 10:57:26  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:49  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:48Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.28  2000/03/09 23:33:38  bcassidy
+ * 1. Add "service" parameter to sccVsSwitchServiceReq.
+ *
+ * Revision 1.27  2000/03/06 19:18:53  bcassidy
+ * 1. Add sccCpBroadcastConfigured/ExpectedInd prototypes
+ *    [SCR 181, 183].
+ *
+ * Revision 1.26  2000/03/06 16:44:32  bcassidy
+ * 1. Add emergency call indicator to sccVsOrigReq
+ *    [SCR 167].
+ *
+ * Revision 1.25  2000/02/15 17:38:27  ddoucett
+ * added sccSmsSetBroadcastParms and sccCpBroadcastDataBurstInd
+ *
+ * Revision 1.24  2000/02/15 16:55:15  bcassidy
+ * 1. Change internalDmc parameter type in sccPsPrefInd to match API document.
+ *
+ * Revision 1.23  2000/01/05 00:09:31  ddoucett
+ * fixed kal_bool muxOption preference for voice
+ *
+ * Revision 1.22  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.21  1999/12/09 20:56:14  ddoucett
+ * fixed sccVsSwitchServiceReq callin
+ *
+ * Revision 1.20  1999/12/08 06:03:38  ddoucett
+ * Updated scc api encluding OTASP support
+ *
+ * Revision 1.19  1999/11/30 22:57:10  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.18  1999/11/30 00:47:43  ddoucett
+ * updated API for SCC rework
+ *
+ * Revision 1.17  1999/07/24 00:36:22  msmith
+ * Removed ARM warnings
+ *
+ * Revision 1.16  1999/07/23 20:18:44  msmith
+ * Added comments
+ *
+ * Revision 1.15  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ *
+ * This Software is the property of ISOTEL Research Ltd.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * 220, 6815-8th Street N.E.
+ * Calgary, Alberta, Canada T2E 7H7
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ * $Log: SCC_API.H $
+ *
+ * 09 18 2020 tina.ma
+ * [MOLY00504457] [Titan93] ESVCINFO issue fix
+ * 	
+ * 	.
+ *
+ * 09 14 2020 tina.ma
+ * [MOLY00504457] [Titan93] ESVCINFO issue fix
+ * 	
+ * 	.
+ *
+ * 10 18 2017 lemon.xiong
+ * [MOLY00247250] [BIANCO][MT6763][C2K]Merge cl to umoly	
+ * 	update for scc ut case
+ *
+ * 09 01 2017 lemon.xiong
+ * [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ * 	
+ * 	ut code
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 06 22 2017 gavin.zhang
+ * [MOLY00258188] [TE CAT][Bianco][C2K][MP1][N1] Externel (EE),0,0,99,/data/core/,1,modem,Trigger time:[2017-06-10 15:25:44.599061] md1:(MCU_core0.vpe0.tc0(VPE0)) [Fatal error(task)] err_code1:0x00000305 err_code2:0x8888016F err_code3:0xCCCCCCCC MD Offender:CPSW
+ * 	
+ * 	.
+ *
+ * 06 01 2017 johnny.ding
+ * [MOLY00254250] [BIANCO][MT6763][C2K][RDIT][Stress][FT][KAL][UE][core0,vpe0,tc0(vpe0)] Fatal Error (0x604, 0xffffffde, 0xcccccccc) - CPSW
+ * 	
+ * 	stop timer in PSW context, should not in HLP context.
+ *
+ * 12 01 2016 sue.zhong
+ * [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ * Update C2K source
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.5  2006/03/21 16:45:42  mclee
+ * Add fromAccess parameter to cpCpIdle() prototype needed by data services.  Data services uses this flag to detect dormant mode scenarios.
+ * Revision 1.4  2006/01/11 15:23:14  blee
+ * Modified function paramter
+ * Revision 1.3  2004/09/28 15:29:56  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:17  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2  2004/02/10 12:55:27  bcolford
+ * Merged CBP4.0 Release 8.05.0 changes.
+ * Revision 1.16  2003/12/11 14:29:57  hhong
+ * Added parameter Reason for sccPsReleaseReq( ).
+ * Revision 1.15  2003/11/21 20:29:31  hhong
+ * Added indication of CDMA v.s. AMPS as a argument for sccCpIdle( ).
+ * Revision 1.14  2002/08/08 15:08:20  mclee
+ * Add prototype sccLocReleaseReq(). Change sccCp801Discard name to sccLocServDiscardSession()
+ * Revision 1.13  2002/06/06 14:53:08  bsharma
+ * Updated Copyright info.
+ * Revision 1.12  2002/05/07 16:31:58  byang
+ * Add function prototype declaration for
+ * sccGetDefaultServiceConfiguration().
+ * Revision 1.11  2002/04/18 09:53:21  mclee
+ * Add location service prototypes
+ * Revision 1.10  2002/02/27 20:53:57  mclee
+ * IS801 APIs
+ * Revision 1.9  2002/02/14 16:29:13  byang
+ * CR373: Add function prototype declaration for 
+ * sccIsServOptionAttributeAvailable().
+ * Revision 1.8  2001/12/14 17:14:24  mclee
+ * prototype sccGetVocoder().
+ * Revision 1.7  2001/11/29 14:11:46  kmar
+ * New function prototype, sccSmsSaveChannel().
+ * Revision 1.6  2001/10/23 16:00:44  byang
+ * Modified sccCpGetServCfgNoConnections() parameters to
+ * accept a target forward and reverse RC.
+ * Revision 1.5  2001/09/24 15:41:33  kmar
+ * Update SMS to latest in CBP3.
+ * Removed Digits parameter from sccSmsTxReq().
+ * Revision 1.4  2001/09/24 09:26:42  mclee
+ * SCC PSW 3 to 4 merge
+ * Revision 1.3  2001/07/02 14:27:35  kmar
+ * Update SCC and SMS to CBP3 v360.
+ * ToNegotiate and Info Rec support in Orig Cont support
+ * added, but currently #define'd out.
+ * Revision 1.2  2001/05/16 11:26:38  yfang
+ * added data service back
+ * Revision 1.1  2001/01/17 10:57:26  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:49  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:48Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.28  2000/03/09 23:33:38  bcassidy
+ * 1. Add "service" parameter to sccVsSwitchServiceReq.
+ *
+ * Revision 1.27  2000/03/06 19:18:53  bcassidy
+ * 1. Add sccCpBroadcastConfigured/ExpectedInd prototypes
+ *    [SCR 181, 183].
+ *
+ * Revision 1.26  2000/03/06 16:44:32  bcassidy
+ * 1. Add emergency call indicator to sccVsOrigReq
+ *    [SCR 167].
+ *
+ * Revision 1.25  2000/02/15 17:38:27  ddoucett
+ * added sccSmsSetBroadcastParms and sccCpBroadcastDataBurstInd
+ *
+ * Revision 1.24  2000/02/15 16:55:15  bcassidy
+ * 1. Change internalDmc parameter type in sccPsPrefInd to match API document.
+ *
+ * Revision 1.23  2000/01/05 00:09:31  ddoucett
+ * fixed kal_bool muxOption preference for voice
+ *
+ * Revision 1.22  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.21  1999/12/09 20:56:14  ddoucett
+ * fixed sccVsSwitchServiceReq callin
+ *
+ * Revision 1.20  1999/12/08 06:03:38  ddoucett
+ * Updated scc api encluding OTASP support
+ *
+ * Revision 1.19  1999/11/30 22:57:10  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.18  1999/11/30 00:47:43  ddoucett
+ * updated API for SCC rework
+ *
+ * Revision 1.17  1999/07/24 00:36:22  msmith
+ * Removed ARM warnings
+ *
+ * Revision 1.16  1999/07/23 20:18:44  msmith
+ * Added comments
+ *
+ * Revision 1.15  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ * Revision 1.14  1999/07/22 17:54:05  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.13  1999/07/14 21:33:06  msmith
+ * Added Markov support
+ *
+ * Revision 1.12  1999/07/14 17:47:29  msmith
+ * Nothing
+ *
+ * Revision 1.11  1999/07/13 20:30:49  msmith
+ * Added Zone-based registration/reconnection support
+ *
+ * Revision 1.10  1999/07/13 19:58:29  msmith
+ * Fixed interface to SOC
+ *
+ * Revision 1.9  1999/07/13 19:38:37  ddoucett
+ * added sid/nid event reporting function
+ *
+ * Revision 1.8  1999/07/09 15:33:57  msmith
+ * Forget
+ *
+ * Revision 1.7  1999/07/07 22:17:13  ddoucett
+ * added loopback support
+ *
+ * Revision 1.6  1999/06/02 20:25:53  msmith
+ * Added support for ACCESS state queuing
+ *
+ * Revision 1.5  1999/05/31 16:06:58  msmith
+ * Removed action time from ConfigurationInd
+ *
+ * Revision 1.4  1999/05/19 16:28:26  msmith
+ * Removed stype.h dependency in .h and moved to .c
+ *
+ * Revision 1.3  1999/05/18 17:56:29  msmith
+ * Added ANALOG voice support
+ *
+ * Revision 1.2  1999/05/13 14:06:30  msmith
+ * Added Packet Data support
+ *
+ * Revision 1.1  1999/04/26 16:24:20  msmith
+ * Initial revision
+ *
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_API_H
+#define _SCC_API_H
+
+#include "SCC_DATA.H"   /* Basic SCC data types */
+#include "Msg_defn.h"   /* definition of FORInfoData */
+#include "Serv_cfg.h"   /* definition of MultiplexOptionInfo, 
+            ServiceConfiguration, ServiceOptionInfo* */
+#include "wbios.h"      /* definition of SCResponse Req and Resp fields */
+
+
+/****************************************************************************
+ *
+ * Name:        sccCpAccess
+ *
+ * Description:   Report that the CPE has enterred the ACCESS state.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The CPE sub-states indicate the ACCESS super-state:
+ *      CP_UPDATE_OHD_INFO, CP_PAGE_RESPONSE, CP_ORD_MSG_RESP,
+ *      CP_ORIGINATION, CP_REGISTRATION, CP_MSG_TRANSMISSION
+ *
+ *****************************************************************************/
+void sccCpAccess(void);
+
+/****************************************************************************
+ *
+ * Name:        sccCpAccessMaxCapsuleSizeInd
+ *
+ * Description:   Reports changes in the ACCESS channel maximum capsule size.
+ *      Note that this is the useable size for the purpose of sending
+ *      a data burst message.
+ *
+ * Parameters:   kal_uint8 size - number of octets 
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpAccessMaxCapsuleSizeInd( kal_uint8 size ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpAlertInd
+ *
+ * Description:   Reports the arrival of an ALERT message while in the
+ *      waiting for order state.
+ *
+ * Parameters:   FORInfoData* data - ALERT info like audio data and CLID
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The SCC assumes the ALERT is destined for the currently
+ *      connected service or voice by default (if otherwise unknown).
+ *
+ *****************************************************************************/
+void sccCpAlertInd( FORInfoData* alertData ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpBroadcastConfiguredInd 
+ *
+ * Scope:       public
+ *
+ * Description: Determines if any service (eg. SMS, OTASP) has been configured
+ *              to receive broadcast databurst messages.
+ *              
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   kal_bool - KAL_TRUE: At least one service is configured to received broadcast
+ *                databurst messages.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool sccCpBroadcastConfiguredInd (void);
+
+/****************************************************************************
+ *
+ * Name:        sccCpBroadcastDataBurstInd
+ *
+ * Description:   Indication of the arrival of a broadcast message for
+ *                'burstType' service.  (SMS, ...)
+ *
+ * Parameters:
+ *    addrLen - Length of the BC_ADDR field
+ *    addr - BC_ADDR field of broadcast message
+ *    msgNumber - MSG_NUM field
+ *    burstType - type of data burst message
+ *    numMsgs - number of messages in sequence (SAR)
+ *    numFields - NUM_FIELDS field (used as # of octets)
+ *    data - pointer to the "fields" or octets in message
+ *
+ * Returns: (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpBroadcastDataBurstInd(kal_uint8 addrLen, kal_uint8 *addr,
+         kal_uint8 msgNumber, kal_uint8 burstType, kal_uint8 numMsgs,
+         kal_uint8 numFields, kal_uint8* data);
+
+/****************************************************************************
+ *
+ * Name:        sccCpBroadcastExpectedInd 
+ *
+ * Scope:       public
+ *
+ * Description: Determines if the specified service is configured to receive
+ *              brodcast messages with the specified address parameters.
+ *              
+ * Parameters:
+ *   kal_uint8 burstType - service identifer.
+ *   kal_uint8 addrLen   - length of BC_ADDR field
+ *   kal_uint8* addr     -  BC_ADDR field in broadcast message.
+ *
+ * Returns:
+ *   kal_bool - KAL_TRUE: The specified service is configured to receive the specified
+ *                broadcast messages.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool sccCpBroadcastExpectedInd (kal_uint8 burstType, kal_uint8 addrLen, kal_uint8* addr);
+
+/****************************************************************************
+ *
+ * Name:        sccCpConnectInd
+ *
+ * Description:   Report the arrical of a digital connection message
+ *      (i.e. from the CPEvent EV_CONNDIGITAL)
+ *
+ * Parameters:   (nothing)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpConnectInd( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpConnectAnalogInd
+ *
+ * Description:   Report the arrical of a analog connection message
+ *      (i.e. from the CPEvent EV_CONNANALOG)
+ *
+ * Parameters:   (nothing)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpConnectAnalogInd( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpDataBurstInd
+ *
+ * Description:   Report the arrival of a data burst message from either the
+ *      ACCESS or TRAFFIC channels.
+ *
+ * Parameters:   broadcast - message was recieved for a broadcast address
+ *      msgNumber - MSG_NUM field
+ *      burstType - type of data burst message
+ *      numMsgs - number of messages in sequence (SAR)
+ *      numFields - NUM_FIELDS field (used as # of octets)
+ *      data - pointer to the "fields" or octets in message
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpDataBurstInd( kal_uint8 msgNumber, kal_uint8 burstType,
+                        kal_uint8 numMsgs, kal_uint8 numFields, kal_uint8* data ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpDataBurstRsp
+ *
+ * Description:   Report the status of the last data burst message sent
+ *
+ * Parameters:   kal_bool success - if KAL_TRUE message delivered successfully
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This is called as a result of receiving a DATA_BURST_RSP
+ *      indication from CPE or a DATA_BURST_SENT indication from CPE.
+ *      In the former, it signals the completion of a L2 data burst
+ *      transaction while in the latter it signals that the
+ *      message sent without confirmation was transmitted.
+ *
+ *      Currently, there is no way to indicate FAILURE on the ACCESS
+ *      channel. On the TRAFFIC channel, a data burst failure results
+ *      in a RELEASE from the CPE. This event causes the SCC to
+ *      fail the data burst transaction.
+ *
+ *****************************************************************************/
+void sccCpDataBurstRsp( kal_bool success ) ;
+
+/****************************************************************************
+ *
+ * Name:   sccCpDisconnectInd
+ *
+ * Description:   Report that the traffic channel services have been forcibly
+ *      disconnected by the base-station.
+ *
+ * Parameters:   kal_uint8 nextState:  Indication of the CPE's next state
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The SCC currently ignores this event and instead waits for
+ *      a RELEASE.
+ *
+ *****************************************************************************/
+void sccCpDisconnectInd(kal_uint8);
+
+/****************************************************************************
+ *
+ * Name:        sccCpGetMultiplexOptionInfo
+ *
+ * Description:   Return (synchronously) the multiplex options that are
+ *      supported by the mobile station.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   MultiplexOptionInfo* mux - a list of MUX options
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+MultiplexOptionInfo* sccCpGetMultiplexOptionInfo( void ) ;
+
+/****************************************************************************
+ *
+ * Name:   sccCpGetServCfgNoConnections
+ *
+ * Description:   Return (synchronously) the service configuration for the 
+ *      TRAFFIC channel that should be applied in order to set-up a 
+ *      SIGNALLING only connection. This data is based on the intended 
+ *      service option.
+ *
+ * Parameters:   kal_uint16 serviceOption - SO to base configuration on
+ *
+ * Returns:   ServiceConfiguration* cfg - MUX and rate configuration. There
+ *      are NO connections returned as it is for SIGNALLING only.
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+ServiceConfiguration* sccCpGetServCfgNoConnections
+(
+    const kal_uint16      serviceOption,
+    const RcTypes     targetForRc,
+    const RcTypes     targetRevRc
+) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpGetServiceOptionInfo
+ *
+ * Description:   Return (synchronously) the service options supported by the
+ *      mobile station
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   ServiceOptionInfo *info - list of SOs
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+ServiceOptionInfo* sccCpGetServiceOptionInfo( void ) ;
+
+/****************************************************************************
+ *
+ * Name:   sccCpHandoffInd
+ *
+ * Description:   Report handoff either on the ACCESS (IDLE) or TRAFFIC channels
+ *
+ * Parameters:   kal_uint8 type - HO type (soft, hard, analog)
+ *      kal_uint8 cfgChanged - indicates if the TRAFFIC channel Service
+ *        Configuration changed as a result of the handoff
+ *      kal_bool setChanged - handoff caused disjoint active sets
+ *      kal_bool freqChanged - CDMA channel changes as result of handoff
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpHandoffInd( kal_uint8 type, kal_bool cfgChanged, kal_bool setChanged, 
+  kal_bool freqChanged) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpIdle
+ *
+ * Description:   Report that the MS is now in the IS-95B IDLE state
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing) 
+ *
+ * Notes:   ReportCPStatus could be used to generate this call-in or
+ *      EV_INSVC which is reported each time IDLE is re-entered.
+ *
+ *****************************************************************************/
+ 
+#ifdef MTK_CBP_REL_OPTIMIZE
+void sccCpIdle(kal_bool cdma);
+#else
+void sccCpIdle(kal_bool cdma, kal_bool fromAccess);
+#endif
+/****************************************************************************
+ *
+ * Name:        sccCpNetworkPRev
+ *
+ * Description:   Report the protocol revision supported by the network.
+ *
+ * Parameters:   kal_uint8 prev
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpNetworkPRev(kal_uint8 prev);
+
+/****************************************************************************
+ *
+ * Name:        sccCpNoSvcInd
+ *
+ * Description:   Indicates RF covergae has been lost and/or CDMA services
+ *      are no longer available from the base-station. The CPE
+ *      event EV_NOSVC maps to this function directly.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpNoSvcInd( void ) ;
+
+#ifndef MTK_CBP_REL_OPTIMIZE
+/****************************************************************************
+ *
+ * Name:        sccCpOrigFailInd
+ *
+ * Description:   Report an origination failure. From CPE, the following
+ *      CPEvents map to this function: EV_INTERCEPT, EV_REORDER, 
+ *      EV_ORIG_FAIL, EV_CC_RELEASE
+ *
+ * Parameters:   kal_uint8 reason - origination failure reason (see above)
+ *      The CPE reason can be passed directly to the SCC
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpOrigFailInd( kal_uint8 reason ) ;
+#endif
+
+/****************************************************************************
+ *
+ * Name:        sccCpOriginationSent
+ *
+ * Description:   Indicates that an origination message has been sent by CPE
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This is used only by the Packet Services
+ *
+ *****************************************************************************/
+void sccCpOriginationSentInd( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpPacketZoneId
+ *
+ * Description:   Report a NEW packet zone (entry to a new system)
+ *
+ * Parameters:   kal_uint8 zone - new packet zone
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpPacketZoneId(kal_uint8 zone);
+
+/****************************************************************************
+ *
+ * Name:        sccCpPageInd
+ *
+ * Description:   Report arrival of a page message
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The ServiceOptionValidation function needs to be invoked
+ *      later to actually validate the page request
+ *
+ *****************************************************************************/
+void sccCpPageInd( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpRandInd
+ *
+ * Description:   Report a new RAND that is used for authentication/encryption.
+ *
+ * Parameters:   kal_uint32 rand
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   RAND is used when RLP is established 
+ *
+ *****************************************************************************/
+void sccCpRandInd( kal_uint32 rand ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpReadyInd
+ *
+ * Description:   Reports that CDMA services are available from the
+ *      base-station. It also indicates a change in IS-95B state or 
+ *      parameters. 
+ *
+ * Parameters:   kal_uint8 state - IS-95B state
+ *      kal_uint8 prevState - previous IS-95B state
+ *      kal_uint8 roam - indicates if the current SID is not the home SID
+ *      kal_uint8 band - current band class
+ *      kal_uint16 channel - current CDMA frequency
+ *      kal_uint8 mode - PCS/analog/cellular
+ *      kal_uint8 block - serving block (PCS only)
+ *      kal_uint8 servingSystem - Band 0 serving system
+ *      kal_uint16 sid - System ID
+ *      kal_uint16 nid - Network ID
+ *      kal_uint8 protRev - network protocol revision
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This should be called with the last values reported values
+ *      of CPStatus when the EV_INSVC CPEvent is reported.
+ *
+ *****************************************************************************/
+void sccCpReadyInd( kal_uint8 state, kal_uint8 prevState, kal_uint8 roam, SysCdmaBandT band,
+         kal_uint16 channel, kal_uint8 block,
+         kal_uint8 servingSystem, kal_uint16 sid, kal_uint16 nid, kal_uint8 protRev ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpReleaseInd
+ *
+ * Description:   Report that the TRAFFIC channel has been released. This
+ *      maps to EV_TC_RELEASE_NORMAL, EV_TC_RELEASE_FAIL,
+ *      EV_TC_RELEASE_SO_REJECT, EV_TC_RELEASE_ACK_FAIL,
+ *      EV_TC_RELEASE_FADE, EV_TC_RELEASE_PDOWN.
+ *
+ * Parameters:   kal_uint8 reason - see above
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpReleaseInd( kal_uint8 reason ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceConfigurationInitiation
+ *
+ * Description:   Returns the initial Service Configuration that is to be
+ *      used for the service negotiation process.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   ServiceConfiguration* cfg - initial cfg.
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+ServiceConfiguration* sccCpServiceConfigurationInitiation( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceConfigurationRsp
+ *
+ * Description:   Reports that the Service Configuration (above) was either
+ *      applied or rejected.
+ *
+ * Parameters:   kal_uint8 response - (see API)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpServiceConfigurationRsp( kal_uint8 response, kal_uint8 request ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceConfigurationValidation
+ *
+ * Description:   Validates the Service Configuration propsoed by the BS
+ *
+ * Parameters:   kal_bool validateOnly - if KAL_TRUE alternative will not be proposed
+ *      ServiceConfiguration* servCfg - cfg to validate
+ *
+ * Returns:   SCResponse - ACCEPT or REJECT (or PROPOSE if ~validateOnly)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+SCResponse sccCpServiceConfigurationValidation( kal_bool validateOnly, ServiceConfiguration* servCfg ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceNegotiationModeInd
+ *
+ * Description:   Reports the Service Negotiaion mode. Either service
+ *      negotiation (SN) or service option negotiation (SON).
+ *
+ * Parameters:   mode - If KAL_TRUE, SN, else SON
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpServiceNegotiationModeInd( kal_bool mode ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceOptionControlMessageInd
+ *
+ * Description:   Report the arrival of a Service Option Control Message.
+ *
+ * Parameters:   kal_uint8 conRef - connection to which this messabe applies
+ *      kal_uint16 serviceOption - service option to apply this to
+ *      kal_uint8 length - length of message in octets
+ *      kal_uint8* ctlRec - message
+ *      kal_uint32 actionTime - time to apply control message order
+ *
+ * Returns: 
+ *
+ * Notes:   The action time is ignored by the SCC (i.e. applied
+ *      immediately) except for codec control actions.
+ *
+ *****************************************************************************/
+kal_uint8 sccCpServiceOptionControlMessageInd( kal_uint8 conRef, kal_uint16 serviceOption,
+               kal_uint8 length, kal_uint8* ctlRec, kal_uint32 actionTime ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceOptionControlOrderInd
+ *
+ * Description:   Report the arrival of a Service Option Control Order.
+ *
+ * Parameters:   kal_uint8 ordq - order
+ *      kal_uint32 actionTime - time to apply control message order
+ *
+ * Returns: 
+ *
+ * Notes:   The action time is ignored by the SCC (i.e. applied
+ *      immediately) except for codec control actions. It is
+ *      also it is assumed that the order is destined for the
+ *      FIRST connected service. Normally, this is OK since
+ *      an Order can only be received in the SON mode which allows
+ *      only ONE service to be connected (e.g. voice).
+ *
+ *****************************************************************************/
+kal_uint8 sccCpServiceOptionControlOrderInd( kal_uint8 ordq, kal_uint32 actionTime ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpServiceOptionValidation
+ *
+ * Description:   Validate the service option proposed by the BS.
+ *
+ * Parameters:   SysServiceOptionT* serviceOption - ptr to proposed SO (in/out)
+ *
+ * Returns:   SCResponse - accept, reject or propose (SO returned in above)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+SCResponse sccCpServiceOptionValidation( SysServiceOptionT* serviceOption ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpSidNidChange
+ *
+ * Description:   Report that either the SID or NID of the system has changed.
+ *
+ * Parameters:   kal_uint16 sid
+ *      kal_uint16 nid
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This can be gotten from the CPE CPStatus report.
+ *
+ *****************************************************************************/
+void sccCpSidNidChange(kal_uint16 sid, kal_uint16 nid);
+
+/****************************************************************************
+ *
+ * Name:        sccCpSsdbInd
+ *
+ * Description:   Report a new SSDB being used for authentication/encryption
+ *
+ * Parameters:   kal_uint8* ssdb - ptr to 8 octets containing SSDB
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   RAND is used when RLP is established 
+ *
+ *****************************************************************************/
+void sccCpSsdbInd( kal_uint8* ssdb ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccCpTcAssigned
+ *
+ * Description:   Report that a TRAFFIC channel has been assigned to the MS.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpTcAssigned(void);
+
+/****************************************************************************
+ *
+ * Name:        sccCpZone
+ *
+ * Description:   Report changes in the REG_ZONE
+ *
+ * Parameters:   kal_uint8 zone
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpZone(kal_uint8 zone);
+
+/****************************************************************************
+ *
+ * Name:        sccDsConnectReq
+ *
+ * Description:   Request to connect the Data Service (DS) upon receiving
+ *      an alert.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This is ignored if there was no prior alert
+ *
+ *****************************************************************************/
+void sccDsConnectReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccDsEnableMap
+ *
+ * Description:   Enable/disable DS services
+ *
+ * Parameters:   ENABLE_MAP enableMap - bitmap of services that should be
+ *      enabled including: Async data, FAX and UP.Browser on async.
+ *
+ * Returns: 
+ *
+ * Notes:   If a service is disabled and the current call is of that type,
+ *      it will be RELEASEd autonomously by the SCC.
+ *
+ *****************************************************************************/
+void sccDsEnableReq( kal_uint8 enableMap ) ;
+
+/****************************************************************************
+ *
+ * Name:   sccDsOrigReq
+ *
+ * Description:   Connect a data service between the MS and BS
+ *
+ * Parameters:   kal_uint8 serviceType - Async or FAX (see scc_dsc.h for types)
+ *               kal_uint8* digits     - dialled digits
+ *
+ * Returns: 
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccDsOrigReq( kal_uint8 serviceType, kal_uint8 *digits);
+
+/****************************************************************************
+ *
+ * Name:        sccDsPrefInd
+ *
+ * Description:   Set the Data Service preferences including the acceptable
+ *      terminations (i.e. page) and preferrred origination type.
+ *
+ * Parameters:   kal_uint8 pageAcceptMap - accept Async data, FAX or none
+ *               kal_uint16 asyncSOPref - preferred SO for async calls
+ *               kal_uint16 faxSOPref - preferred SO for fax calls
+ * 
+ * Returns: 
+ *
+ * Notes:   These settings do not affect any current calls in progress
+ *
+ *****************************************************************************/
+void sccDsPrefInd( kal_uint8 pageAcceptMap, kal_uint16 asyncSOPref,
+           kal_uint16 faxSOPref, kal_uint8 forRc, kal_uint8 revRc);
+
+/****************************************************************************
+ *
+ * Name:   sccDsReleaseReq
+ *
+ * Description:   request that the currently connected call be released.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This call is ignored if there is no call in progress.
+ *
+ *****************************************************************************/
+void sccDsReleaseReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:   sccLsOrigReq
+ *
+ * Description:   Connect a loopback service between the MS and BS
+ *
+ * Parameters:      kal_uint8 type   -   type of loopback call (IS-126 or Markov)
+ *                kal_uint8* digits - dialled digits
+ *      
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLsOrigReq(SysLoopbackSvcTypeT type, kal_uint8 *digits);
+
+/****************************************************************************
+ *
+ * Name:        sccLsPrefInd
+ *
+ * Description:   Select the loopback service type (IS-136 or Markov)
+ *
+ * Parameters:   kal_uint8 pageAcceptMap 
+ *               kal_uint16 IS126SOPref - preferred SO for IS126 loopback calls
+ *               kal_uint16 MarkovSOPref - preferred SO for Markov loopback calls
+ *               kal_uint16 SuppChanSoPref - preferred SO for Supplemental
+ *               		channel loopback calls
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLsPrefInd(kal_uint8 pageAcceptMap, kal_uint16 IS126SOPref, kal_uint16 MarkovSOPref,
+                  kal_uint16 SuppChanSoPref, kal_bool ToNegotiate, kal_uint8 forRc, kal_uint8 revRc);
+
+/****************************************************************************
+ *
+ * Name:        sccLsReleaseReq
+ *
+ * Description:   Request to release the currently connected loopback call
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLsReleaseReq( void );
+
+/****************************************************************************
+ *
+ * Name:        sccLsSOCMsgReq
+ *
+ * Description:   Request by the user to send a Service Option control 
+ *                message
+ *
+ * Parameters:      kal_uint8* msg:   Properly formatted SOC message
+ *                kal_uint8 length:  length of message
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLsSOCMsgReq(kal_uint8* msg, kal_uint8 length);
+
+/***************************************************************************
+ *
+ * Function Name:      sccOsAcceptMsg
+ *
+ * Description:      Indication the OTASP PE has accepted the last
+ *                   message as being valid
+ *
+ * Parameters:         kal_bool success:  KAL_TRUE -- message accepted
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccOsAcceptMsg(kal_bool success);
+
+/***************************************************************************
+ *
+ * Function Name:      sccOsPrefInd
+ *
+ * Description:      OTASP service option preferences
+ *
+ * Parameters:         kal_uint16 OtaSoPref:  OTASP service option preference
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccOsPrefInd(kal_uint16 OtaSoPref, kal_uint8 ForRc, kal_uint8 RevRc); 
+
+/***************************************************************************
+ *
+ * Function Name:      sccOsReleaseReq
+ *
+ * Description:      Request to release the OTASP session
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccOsReleaseReq(void);
+
+/***************************************************************************
+ *
+ * Function Name:      sccOsSendMsgReq
+ *
+ * Description:      Request for SCC to transmit the given message
+ *
+ * Parameters:         kal_uint8 *data:  pointer to data.
+ *                   kal_uint8 length:  length of message
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccOsSendMsgReq(kal_uint8 *data, kal_uint8 length);
+
+/****************************************************************************
+ *
+ * Name:        sccPsConnectReq
+ *
+ * Description:   Request to connect the incoming Packet Service
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccPsConnectReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccPsDormantReq
+ *
+ * Description:   Request that the packet Data Service enter the DORMANT state.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The BS can reject this request in which case no state change
+ *      will occur.
+ *
+ *****************************************************************************/
+void sccPsDormantReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccPsSuspendReq
+ *
+ * Scope:       public
+ *
+ * Description: Routes a Dormant request to the PSC, then suspend 1XPS.
+ *
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccPsSuspendReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccPsResumeReq
+ *
+ * Scope:       public
+ *
+ * Description: Resume 1XPS.
+ *
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccPsResumeReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        
+ *
+ * Description:
+ *
+ * Parameters:   kal_uint8 type - packet service type
+ *                    (low speed data, medium speed data)
+ *               kal_uint8* digits - ascii encoded dialled digits
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccPsOrigReq(SysPacketDataSvcTypeT type, kal_uint8* digits);
+
+/****************************************************************************
+ *
+ * Name:        sccPsPrefInd
+ *
+ * Description:   Indicate the preferred type of packet service.
+ *
+ * Parameters:      kal_bool internalDormModeControl:  indication SCC should
+ *                   use internal dormant mode.  
+ *                   (KAL_TRUE -- SCC controls dormant mode)
+ *                   (KAL_FALSE -- dormant mode is external)
+ *      kal_uint16 LSDSoPref:  low speed data service option preference
+ *      kal_uint16 MSDSoPref:  medium speed data service option preference
+ *      kal_uint8 MSPDTypePref:  Preferred Packet service type
+ *                     (0 -- MSPD_Disabled)
+ *                     (1 -- MSPD_IfAvailible)
+ *                     (2 -- MSPD_Only)      
+ *
+ * Returns:       None
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccPsPrefInd(kal_bool internalDmc, kal_uint16 LSDSoPref, kal_uint16 MSDSoPref,
+                  kal_uint8 MSPDTypePref, kal_uint8 forRc, kal_uint8 revRc);
+
+/****************************************************************************
+ *
+ * Name:        sccPsReleaseReq
+ *
+ * Description:   Release the currently connected packet call
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccPsReleaseReq(kal_uint8 reason);
+
+/****************************************************************************
+ *
+ * Name:        sccPsStopDrmtTmr
+ *
+ * Description:   Stop PSC dormant timer.
+ *
+ * Parameters:      None
+ *
+ * Returns:       None
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccPsStopDrmtTmr();
+
+
+/****************************************************************************
+ *
+ * Name:        sccSmsPrefSrvOptInd
+ *
+ * Description:   Set the preferred SMS service option
+ *
+ * Parameters:      kal_uint16 smsSoPref:  Service Option preferred for SMS
+ *
+ * Returns:         None
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccSmsPrefSrvOptInd (kal_uint16 smsSoPref);
+
+/****************************************************************************
+ *
+ * Name:        sccSmsPrefInd
+ *
+ * Description:   Set the preferred SMS service option
+ *
+ * Parameters:      kal_uint16 smsSoPref:  Service Option preferred for SMS
+ *
+ * Returns:         None
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccSmsPrefInd(kal_uint16 smsSoPref, kal_uint8 forRc, kal_uint8 revRc);
+
+/****************************************************************************
+ *
+ * Name:        sccSmsReleaseReq
+ *
+ * Description:   Release the currently connected SMS connection
+ *
+ * Parameters:      None
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccSmsReleaseReq(void);
+
+/****************************************************************************
+ *
+ * Name:   sccSmsSetBroadcastParms
+ *
+ * Description:   Sets the scc internal broadcast filter masks and
+ *	         priority
+ *
+ * Parameters:      kal_uint32 svcMask:  Bit Mask indicating which service
+ *                      categories of broadcast messages to allow.
+ *                  kal_uint32 langMask:  Bit mask indicating which
+ *			languages of broadcast messages to allow.
+ *                  kal_uint8 priority:  Minimum priority of broadcast
+ *			message to allow
+ *
+ * Returns:   (nothing)
+ *
+ * Notes: 
+ *
+ *****************************************************************************/
+void sccSmsSetBroadcastParms(kal_uint32 svcMask, kal_uint32 langMask, kal_uint8 priority);
+
+/****************************************************************************
+ *
+ * Name:   sccSmsTxReq 
+ *
+ * Description:   Send an SMS data burst message
+ *
+ * Parameters:      kal_uint8* data - data to send
+ *                  kal_uint16 len - number of octets
+ *                  kal_bool confirm -  send confirmed (KAL_TRUE) or unconfirmed
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The dialled digits are used for both origination of the
+ *      SMS connection (if required) or authentication of data burst.
+ *
+ *****************************************************************************/
+void sccSmsTxReq(kal_uint8* data, kal_uint16 len, kal_bool confirm,kal_bool IsE911);
+
+/****************************************************************************
+ *
+ * Name:   sccSmsSaveChannel
+ *
+ * Description:   Stores the desired method by which to determine which
+ *                channel to send the SMS message in.
+ *
+ * Parameters:    kal_bool  send_traffic- channel to send SMS message
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccSmsSaveChannel(kal_bool send_traffic);
+
+/****************************************************************************
+ *
+ * Name:     sccSysEnableReq
+ *
+ * Description:     Enable/disable the SCC services
+ *
+ * Parameters:          kal_bool enable - if KAL_TRUE, enable else disable
+ *
+ * Returns:     (nothing)
+ *
+ * Notes:     This function is currently unimplemented
+ *
+ *****************************************************************************/
+void sccSysEnableReq(kal_bool enable) ;
+
+/****************************************************************************
+ *
+ * Name:        sccSysInitReq
+ *
+ * Description:   Make the SCC ready for service
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This can be invoked at any time HOWEVER all current services
+ *      should be released first.
+ *
+ *****************************************************************************/
+void sccSysInitReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccSysReleaseReq
+ *
+ * Description:   Request to release ALL currently connected services
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   THIS FUNCTION HAS NOT BEEN IMPLEMENTED YET
+ *
+ *****************************************************************************/
+void sccSysReleaseReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccSysTimerExpiredInd
+ *
+ * Description:   Indicate that a timer started by the SCC has been expired
+ *
+ * Parameters:   kal_uint16 timerID
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   It is possible to pass in a timerID that was not started
+ *      by the SCC.
+ *
+ *****************************************************************************/
+void sccSysTimerExpiredInd( kal_uint16 timerID ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccVsConnectReq
+ *
+ * Description:   Request to connect an incoming voice connection.
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   This will be ignored if there is no incoming call
+ *
+ *****************************************************************************/
+void sccVsConnectReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccVsDataPrearrangement
+ *
+ * Description:   Arrange for a VOICE call to be automatically switched to an
+ *      async data or FAX call.
+ *
+ * Parameters:   PRE_ARRANGEMENT_MODE preArrangementMode - as follows:
+ *      Disabled - no pre-arrangement
+ *      One-shot, any CPN - next voice call only, any caller
+ *      Permanent, any CPN -  all future voice calls, any caller
+ *      One-shot, specific CPN - next voice call only, a caller
+ *      Permanent, specific CPN -  all future voice calls, a caller
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The WBIOS call cfgSccCheckCpn will be used to determine how
+ *      to treat individual callers (i.e. which service to use).
+ *
+ *****************************************************************************/
+void sccVsDataPrearrangementReq( kal_uint8 preArrangementMode ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccVsFaxDataPreArangReq
+ *
+ * Description:   Arrange for a VOICE call to be automatically switched to an
+ *      async data or FAX call. This is done differently than it is in 
+ *      sccVsDataPrearrangementReq. A Page Response message would carry service 
+ *      option based on this arrangement.
+ *
+ * Parameters:   PRE_ARRANGEMENT_MODE preArrangementMode - as follows:
+ *      Disabled - no pre-arrangement
+ *      One-shot, any CPN - next voice call only, any caller
+ *      Permanent, any CPN -  all future voice calls, any caller
+ *      One-shot, specific CPN - next voice call only, a caller
+ *      Permanent, specific CPN -  all future voice calls, a caller
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   The WBIOS call cfgSccCheckCpn will be used to determine how
+ *      to treat individual callers (i.e. which service to use).
+ *
+ *****************************************************************************/
+void sccVsFaxDataPreArangReq( kal_uint8 preArrangementMode ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccVsOrigReq
+ *
+ * Description:   Request to originate a voice call.
+ *
+ * Parameters:   kal_bool encoded
+ *               kal_bool digitMode
+ *               kal_uint8 numberType
+ *               kal_uint8 numberPlan
+ *               kal_uint8* digits - dialled digits
+ *               kal_uint8 numDigits - number of 'digits'
+ *               CallingPartyNumber *cpn
+ *               kal_bool emergency
+ *               kal_bool multCPN
+ *               kal_bool inclCallingSub
+ *               Subaddress* callingSub
+ *               kal_bool inclCalledSub
+ *               Subaddress* calledSub
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccVsOrigReq(
+  kal_bool   encoded,             /* digits encoded indication    */
+  kal_bool   digitMode,           /* digit encoding indicator     */
+  kal_uint8  numberType,          /* type of number               */
+  kal_uint8  numberPlan,          /* numbering plan               */
+  kal_uint8   *digits,            /* ascii digits, null terminated string */
+  kal_uint8  numDigits,           /* number of digits to be dialled       */
+  CallingPartyNumber *cpn,    /* optional Calling party number */
+  PswCallModeT callMode,      /* voice call mode indicator     */
+  kal_bool   multCPN,             /* whether MS has >1 calling party num values */
+  kal_bool   inclCallingSub,      /* whether calling party subaddr info included */
+  Subaddress* callingSub,     /* calling party subaddress info */
+  kal_bool inclCalledSub,         /* whether called party subaddr info included */
+  Subaddress* calledSub       /* called party subaddress info */
+);
+
+/****************************************************************************
+ *
+ * Name:        sccVsPrefInd
+ *
+ * Description:   Set the preferred voice coder, MUX etc.
+ *
+ * Parameters:      kal_uint8 svcPref:  Voice Coder Preference
+ *                   (0 -- Prefer QCELP)
+ *                   (1 -- Prefer EVRC)
+ *                   (2 -- prefer Analog)
+ *                   (3 -- prefer qualcomm QCELP)
+ *      kal_uint8 muxPref - Mux preference
+ *                     (1 prefer MUX1)
+ *                     (2 prefer MUX2)
+ *      kal_bool  ToNegotiate
+ *
+ *      kal_uint8 forRc - Fwd RC configuration
+ *      kal_uint8 revRc - Rev RC configuration
+ *
+ *      kal_bool  ForceOverride to force Preference through ETS or VAL API
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:   
+ *
+ *****************************************************************************/
+void sccVsPrefInd (kal_uint16 soPref, kal_bool ToNegotiate, kal_uint8 forRc, kal_uint8 revRc, kal_bool ForceOverride);
+
+
+/****************************************************************************
+ *
+ * Name:        sccVsReleaseReq
+ *
+ * Description:   Request to release the currently connected voice call
+ *
+ * Parameters:   (none)
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccVsReleaseReq( void ) ;
+
+/****************************************************************************
+ *
+ * Name:        sccVsSwitchServiceReq 
+ *
+ * Scope:       public
+ *
+ * Description: Request to switch the currrently connected voice service to
+ *              the specified type.
+ *              
+ * Parameters:
+ *   kal_uint8 service - Voice service sub-type:
+ *                   1 = Analog voice
+ *                   2 = EVRC
+ *                   3 = QCELP
+ *                   4 = Qualcomm QCELP
+ *                   5 = FAX
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccVsSwitchServiceReq (kal_uint16 serviceOption);
+
+/****************************************************************************
+ *
+ * Name:        sccIsServOptionAttributeAvailable()
+ *
+ * Description: This function determines if the requested Service Option
+ *              is a IS2000 SO.
+ *
+ * Parameters:  kal_uint16 - Service Option requested
+ *
+ * Returns:     kal_bool - KAL_TRUE: IS2000, KAL_FALSE: IS95B and ealier
+ *
+ * Notes: 
+ *
+ ****************************************************************************/
+kal_bool sccIsServOptionAttributeAvailable
+(
+    const kal_uint16 servOption
+);
+
+/***************************************************************************
+ *
+ * Function Name:    sccEnterE911
+ *
+ * Description:      Informs SCC E911 mode entered.  Info needed by 801 stack
+ *
+ * Parameters:       kal_bool Mode: IS E911 On or Off 
+ *
+ * Returns:          none 
+ *
+ * Notes:            
+ *
+ ****************************************************************************/
+void sccEnterE911(kal_bool Mode);
+
+/***************************************************************************
+ *
+ * Function Name:    sccCp801Discard
+ *
+ * Description:      Informs SCC to tell 801 stack it need to discard any
+ *					 outstanding responses.
+ *
+ * Parameters:       none 
+ *
+ * Returns:          none 
+ *
+ * Notes:            
+ *
+ ****************************************************************************/
+void sccLocServDiscardSession(void);
+
+/****************************************************************************
+ *
+ * Name:        sccLocOrigReq
+ *
+ * Description:   Request to originate a voice call.
+ *
+ * Parameters:   kal_bool privacyMode - if KAL_TRUE, request voice privacy
+ *               kal_bool encoded
+ *               kal_bool digitMode
+ *               kal_uint8 numberType
+ *               kal_uint8 numberPlan
+ *               kal_uint8* digits - dialled digits
+ *               kal_uint8 numDigits - number of 'digits'
+ *               CallingPartyNumber *cpn
+ *               kal_bool emergency
+ *               kal_bool multCPN
+ *               kal_bool inclCallingSub
+ *               Subaddress* callingSub
+ *               kal_bool inclCalledSub
+ *               Subaddress* calledSub
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLocOrigReq(kal_uint8 *digits);
+
+/*****************************************************************************
+ 
+  FUNCTION NAME:   PswLocPrefReqMsg
+
+  DESCRIPTION: This function relays the Location service option preference to SCC
+
+  PARAMETERS:  MsgP-> pointer to bit map info.
+
+  RETURNED VALUES: None
+
+*****************************************************************************/
+void sccLocPrefInd (kal_uint16 LocSoPref, kal_uint8 ForRc, kal_uint8 RevRc);
+
+/****************************************************************************
+ *
+ * Name:        sccGetDefaultServiceConfiguration()
+ *
+ * Description: This function searches through the list of default Service
+ *              Configurations to find the desired Service Option.
+ *              If it is found, then the address of the Service Config. is
+ *              returned to the calling function.
+ *
+ * Parameters:  kal_uint16 - Service Option requested
+ *
+ * Returns:     ServiceConfiguration* - NULL if not found
+ *
+ * Notes: 
+ *
+ ****************************************************************************/
+ServiceConfiguration* sccGetDefaultServiceConfiguration
+(
+    const kal_uint16 servOption
+);
+
+ServiceConfiguration* sccGetPrefServiceConfiguration 
+(
+    const kal_uint16 servOption
+);
+
+
+/****************************************************************************
+ *
+ * Name:        sccLocReleaseReq
+ *
+ * Description:   Release the currently connected Location connection
+ *
+ * Parameters:      None
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLocReleaseReq (void);
+
+/****************************************************************************
+ *
+ * Name:        sccSmsOrigReq
+ *
+ * Description:   Send origination request for MO SMS in Traffic
+ *
+ * Parameters:      
+ *  OrigParms *orig - 
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccSmsOrigReq(OrigParms *orig);
+
+/****************************************************************************
+ *
+ * Name:         cpcGetServiceType
+ *
+ * Description:  To query current service type
+ *
+ * Parameters:   None. 
+ *
+ * Returns:      ServiceType _neg.svcType
+ *
+ *****************************************************************************/
+SysServiceTypeT cpcGetServiceType( void );
+
+/****************************************************************************
+ *
+ * Name:        sccCpGetPAM()
+ *
+ * Description: Get Prearranged mode.
+ *
+ * Parameters:  None.
+ *
+ * Returns:     Prearranged mode.
+ *
+ * Notes: 
+ *
+ ****************************************************************************/
+kal_uint8 sccCpGetPAM(void);
+
+/****************************************************************************
+ *
+ * Name:         sccCpGetSendingSMS()
+ *
+ * Description:  To query whether DBC has sent SMS databurst and waiting for
+ *               an ARQ acknowledgement
+ *
+ * Parameters:   None. 
+ *
+ * Returns:      kal_bool
+ *
+ *****************************************************************************/
+kal_bool sccCpGetSendingSMS(void);
+
+#ifndef MTK_CBP_REL_OPTIMIZE
+/****************************************************************************
+ *
+ * Name:        sccCpPageFailInd
+ *
+ * Description:   Report an Page  failure. From CPE, the following
+ *      CPEvents map to this function: EV_INTERCEPT, EV_PAGE_FAIL, 
+ *      
+ * Parameters:   kal_uint8 reason
+ *
+ * Returns:   (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccCpPageFailInd (kal_uint8 reason);
+#endif
+
+#ifdef MTK_CBP_REL_OPTIMIZE
+/****************************************************************************
+ *
+ * Name:        SccCheckServiceOngoing
+ *
+ * Description:   return true if service on going, return false if no service on going.
+ *      
+ * Parameters:   NULL
+ *
+ * Returns:   (kal_bool)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool SccCheckServiceOngoing(void);
+#endif
+
+/****************************************************************************
+ *
+ * Name:        sccSetPacketZoneReconnect() 
+ *
+ * Scope:       public
+ *
+ * Description: This function sets pz_reconnect based on received value.
+ *              
+ * Parameters:  kal_bool KAL_FALSE - set pz_reconnect = KAL_FALSE
+ *                   KAL_TRUE  - set pz_reconnect = KAL_TRUE
+ *
+ ****************************************************************************/
+void sccSetPacketZoneReconnect(kal_bool val);
+
+/****************************************************************************
+ *
+ * Name:        sccGetPacketZoneReconnect() 
+ *
+ * Scope:       public
+ *
+ * Description: This function returns current pz_reconnect value.
+ *              
+ * Parameters:  void
+ *
+ * Returns:     kal_bool pz_reconnect
+ *
+ ****************************************************************************/
+kal_bool sccGetPacketZoneReconnect(void);
+
+/***************************************************************************
+ *
+ * Function Name:      sccDbcIdleInd
+ *
+ * Description:        Indication to DBC that PS Engine is in the idle state
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccDbcIdleInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:      sccDbcIsSmsMTConn
+ *
+ * Description:        Returns whether SCC DBC is in connected state for MT
+ *                     SMS.
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool sccDbcIsSmsMTConn(void);
+#ifdef MTK_CBP
+kal_bool sccDbcIsSmsMOConn(void);
+#endif
+/****************************************************************************
+ *
+ * Name:         sccSmsAliveTimerStop()
+ *
+ * Description:  Stops SMS alive timer
+ *
+ * Parameters:   None
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccSmsAliveTimerStop(void);
+
+
+/****************************************************************************
+ *
+ * Name:         sccIsServiceOptionEnabled()
+ *
+ * Description:  Returns whether a SO is enabled
+ *
+ * Parameters:   kal_uint16 Service Option
+ *
+ * Returns:      kal_bool 
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccIsServiceOptionEnabled(kal_uint16 serv_opt);
+
+
+/****************************************************************************
+ *
+ * Name:         sccEnableServiceOption()
+ *
+ * Description:  Enables a service option
+ *
+ * Parameters:   kal_uint16 Service option
+ *
+ * Returns:      kal_bool Status: KAL_FALSE if SO not found. KAL_TRUE if found
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccEnableServiceOption(kal_uint16 serv_opt, kal_bool  enable);
+
+/****************************************************************************
+ *
+ * Name:         sccGetSO73WBEnabled()
+ *
+ * Description:  
+ *
+ * Parameters:   
+ *
+ * Returns:      
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccGetSO73WBEnabled(void);
+
+/****************************************************************************
+ *
+ * Name:         sccGetSO73WBEnabled()
+ *
+ * Description:  
+ *
+ * Parameters:   
+ *
+ * Returns:      
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccSetSO73WBEnabled(kal_bool Enabled);
+
+#ifdef MTK_CBP
+kal_bool sccDbcGetConnFailReason(void);
+#endif
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+void sccVsUpdatePrefRc(kal_bool lockRc, kal_uint8 forRc, kal_uint8 revRc);
+void sccLsUpdatePrefRc(kal_uint8 forRc, kal_uint8 revRc);
+void sccPsUpdatePrefRc(kal_uint8 forRc, kal_uint8 revRc);
+void sccSmsUpdatePrefRc(kal_uint8 forRc, kal_uint8 revRc);
+void sccOsUpdatePrefRc(kal_uint8 forRc, kal_uint8 revRc);
+void sccLocUpdatePrefRc(kal_uint8 forRc, kal_uint8 revRc);
+#endif
+
+#endif /* _SCC_API_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_BIOS.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_BIOS.H
new file mode 100644
index 0000000..9beb698
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_BIOS.H
@@ -0,0 +1,1003 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_bios.h
+ * Project:         SCC BIOS
+ * Original Author: MMS
+ * Creation Date:   Apr. 26/1999
+ *
+ * Description:  Service Configuration Controller (SCC) call-outs
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * $Id: SCC_BIOS.H 1.3 2004/09/28 15:30:17 chinh Exp $
+ *
+ * $Log: SCC_BIOS.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.3  2004/09/28 15:30:17  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:17  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2  2004/02/10 12:55:28  bcolford
+ * Merged CBP4.0 Release 8.05.0 changes.
+ * Revision 1.5  2003/11/12 13:26:05  mclee
+ * delete prototypes to functions deleted in pswsceng.c for CR618
+ * Revision 1.4  2003/04/03 13:44:19  ameya
+ * Removed prototype of sysSccErrorInd().
+ * Revision 1.3  2002/06/06 14:53:20  bsharma
+ * Updated Copyright info.
+ * Revision 1.2  2001/11/14 14:52:55  hhong
+ * Changed to support F-SCH.
+ * Revision 1.1  2001/01/17 10:57:26  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:49  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:46Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.26  2000/03/09 23:35:09  bcassidy
+ * 1. Add "cpSccAnalogReq" and "vsSccSwitchFailInd".
+ * 2. Add "service" parameter to "vsSccConnectInd".
+ * 3. Remove "vsSccSwitchInd".
+ *    [Replaced with vsSccConnectInd].
+ *
+ * Revision 1.25  2000/03/03 23:39:08  bcassidy
+ * 1. Change timer duration to kal_uint32.
+ *
+ * Revision 1.24  2000/02/15 17:41:34  ddoucett
+ * changed the sms RxInd callout to SMS removing the kal_bool broadcast
+ * parameter
+ *
+ * Revision 1.23  2000/02/05 20:23:11  bcassidy
+ * 1. Change cfgSccCheckCpn:serviceType parameter type to avoid internal
+ *    type name conflict.
+ *
+ * Revision 1.22  2000/01/26 20:46:24  ddoucett
+ * added reason to osSccDisconnectInd
+ *
+ * Revision 1.21  2000/01/20 18:29:03  ddoucett
+ * added osSccMsgConfirmInd
+ *
+ * Revision 1.20  2000/01/05 00:09:31  ddoucett
+ * fixed various type mismatches with the api document
+ *
+ * Revision 1.19  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.18  1999/12/13 22:12:23  dfischer
+ * Changed name of parameter txrateset to txmuxoption
+ *
+ * Revision 1.17  1999/12/08 06:03:38  ddoucett
+ * SCC rework and API updates
+ *
+ * Revision 1.16  1999/11/30 22:57:18  ddoucett
+ * changed ds connectInd api adding origDir
+ *
+ * Revision 1.15  1999/11/30 00:48:23  ddoucett
+ * updated bios API for SCC rework
+ *
+ * Revision 1.14  1999/08/17 23:07:42  ddoucett
+ * changed smsSccRxInd and oaSccRxInd api data types
+ *
+ * Revision 1.13  1999/07/26 15:52:08  ddoucett
+ * added action time to rlpRateReq interface
+ *
+ * Revision 1.12  1999/07/24 00:36:22  msmith
+ * Removed ARM warnings
+ *
+ * Revision 1.11  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ *
+ *
+ * This Software is the property of ISOTEL Research Ltd.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * 220, 6815-8th Street N.E.
+ * Calgary, Alberta, Canada T2E 7H7
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Id: SCC_BIOS.H 1.3 2004/09/28 15:30:17 chinh Exp $
+ *
+ * $Log: SCC_BIOS.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.3  2004/09/28 15:30:17  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:17  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2  2004/02/10 12:55:28  bcolford
+ * Merged CBP4.0 Release 8.05.0 changes.
+ * Revision 1.5  2003/11/12 13:26:05  mclee
+ * delete prototypes to functions deleted in pswsceng.c for CR618
+ * Revision 1.4  2003/04/03 13:44:19  ameya
+ * Removed prototype of sysSccErrorInd().
+ * Revision 1.3  2002/06/06 14:53:20  bsharma
+ * Updated Copyright info.
+ * Revision 1.2  2001/11/14 14:52:55  hhong
+ * Changed to support F-SCH.
+ * Revision 1.1  2001/01/17 10:57:26  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:49  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:46Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.26  2000/03/09 23:35:09  bcassidy
+ * 1. Add "cpSccAnalogReq" and "vsSccSwitchFailInd".
+ * 2. Add "service" parameter to "vsSccConnectInd".
+ * 3. Remove "vsSccSwitchInd".
+ *    [Replaced with vsSccConnectInd].
+ *
+ * Revision 1.25  2000/03/03 23:39:08  bcassidy
+ * 1. Change timer duration to kal_uint32.
+ *
+ * Revision 1.24  2000/02/15 17:41:34  ddoucett
+ * changed the sms RxInd callout to SMS removing the kal_bool broadcast
+ * parameter
+ *
+ * Revision 1.23  2000/02/05 20:23:11  bcassidy
+ * 1. Change cfgSccCheckCpn:serviceType parameter type to avoid internal
+ *    type name conflict.
+ *
+ * Revision 1.22  2000/01/26 20:46:24  ddoucett
+ * added reason to osSccDisconnectInd
+ *
+ * Revision 1.21  2000/01/20 18:29:03  ddoucett
+ * added osSccMsgConfirmInd
+ *
+ * Revision 1.20  2000/01/05 00:09:31  ddoucett
+ * fixed various type mismatches with the api document
+ *
+ * Revision 1.19  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.18  1999/12/13 22:12:23  dfischer
+ * Changed name of parameter txrateset to txmuxoption
+ *
+ * Revision 1.17  1999/12/08 06:03:38  ddoucett
+ * SCC rework and API updates
+ *
+ * Revision 1.16  1999/11/30 22:57:18  ddoucett
+ * changed ds connectInd api adding origDir
+ *
+ * Revision 1.15  1999/11/30 00:48:23  ddoucett
+ * updated bios API for SCC rework
+ *
+ * Revision 1.14  1999/08/17 23:07:42  ddoucett
+ * changed smsSccRxInd and oaSccRxInd api data types
+ *
+ * Revision 1.13  1999/07/26 15:52:08  ddoucett
+ * added action time to rlpRateReq interface
+ *
+ * Revision 1.12  1999/07/24 00:36:22  msmith
+ * Removed ARM warnings
+ *
+ * Revision 1.11  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ * Revision 1.10  1999/07/22 17:54:05  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.9  1999/07/13 20:30:49  msmith
+ * Added Zone-based registration/reconnection support
+ *
+ * Revision 1.8  1999/07/13 19:39:07  ddoucett
+ * added rlpRateReq function
+ *
+ * Revision 1.7  1999/07/07 22:18:06  ddoucett
+ * added loopback support
+ *
+ * Revision 1.6  1999/06/02 20:25:53  msmith
+ * Added support for ACCESS state queuing
+ *
+ * Revision 1.5  1999/05/31 19:37:08  msmith
+ * Added SMS support
+ *
+ * Revision 1.4  1999/05/19 16:28:26  msmith
+ * Removed stype.h dependency in .h and moved to .c
+ *
+ * Revision 1.3  1999/05/18 17:56:29  msmith
+ * Added ANALOG voice support
+ *
+ * Revision 1.2  1999/05/13 14:06:30  msmith
+ * Added Packet Data support
+ *
+ * Revision 1.1  1999/04/26 16:32:17  msmith
+ * Initial revision
+ *
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_BIOS_H
+#define _SCC_BIOS_H
+
+#include "SCC_DATA.H"   /* general SCC definitions */
+
+/***************************************************************************
+ *
+ * Function Name:      cfgSccCheckCpn
+ *
+ * Description:      Request to check the specified calling party number to
+ *                   determine if a voice/data/FAX SO switch is needed
+ *
+ * Parameters:       SwitchServiceType* serviceType:
+ *                     Input -- current service type
+ *                     Output -- desired service type
+ *                   CallingPartyNumber *cpn:  Calling party number
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cfgSccCheckCpn (SwitchServiceType* serviceType,
+                     CallingPartyNumber *cpn);
+
+/***************************************************************************
+ *
+ * Function Name:      cfgSccCheckOtaspDigits
+ *
+ * Description:      Request to check the specified digits to determine if
+ *                      the user is requesting to make an OTASP call
+ *
+ * Parameters:         kal_uint8 *digits:  Digit string
+ *                   kal_uint8 numDigits: Number of digits in string
+ *                   kal_bool digitMode:  (0 -- TBCD digits)
+ *                                     (1 -- Ascii Digits)
+ *                   kal_uint8 *otaspMode:  OUTPUT - return the block requested
+ *			   for the otasp connection  see table 3.2-1 IS683
+ *
+ * Returns:            kal_bool:  KAL_TRUE -- Digits are for an OTASP origination
+ *                            KAL_FALSE -- Normal Call
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool cfgSccCheckOtaspDigits( kal_uint8 *digits, kal_uint8 numDigits,
+         kal_bool digitMode, kal_uint8 *otaspMode);
+
+/****************************************************************************
+ *
+ * Name:        cpSccAnalogReq
+ *
+ * Scope:       public
+ *
+ * Description: Request to switch from a CDMA Traffic Channel to an
+ *              Analog Voice channel.
+ *
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccAnalogReq (void);
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccConnectReq
+ *
+ * Description:      Request to CPE to answer an incoming call
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccConnectReq(void) ;
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccDataBurstReject
+ *
+ * Description:      Indicate received databurst message was rejected
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccDataBurstReject(void) ;
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccDataBurstReq
+ *
+ * Description:      Request to send a data burst message
+ *
+ * Parameters:         kal_bool confirm: indicate if the message requires base
+ *                            station confirmation of delivery
+ *                   kal_uint8 msgNumber:   Message number (Usually 1)
+ *                   kal_uint8 burstType:  burst type of message (see TSB-58)
+ *                   kal_uint8 numMsgs:  Number of Messages (Usually 1)
+ *                   kal_uint8 numFields: Number of characters in the message
+ *                   kal_uint8* data: Pointer to message
+ *                   kal_bool encoded:
+ *                   kal_bool digit_mode:
+ *                   char* digits:      dialled digits
+ *                   kal_uint8 num_digits:   number of dialled digits
+ *
+ * Returns:
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccDataBurstReq(kal_bool confirm, kal_uint8 msgNumber, kal_uint8 burstType,
+   kal_uint8 numMsgs, kal_uint8 numFields, kal_uint8* data, kal_bool encoded,
+   kal_bool digit_mode, char* digits, kal_uint8 num_digits) ;
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccOrigReq
+ *
+ * Description:      Request to originate a call
+ *
+ * Parameters:         OrigParms* origParms:  Origination parameters
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccOrigReq(OrigParms* origParms);
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccReleaseReq
+ *
+ * Description:      Request to drop the traffic channel
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccReleaseReq(kal_bool pktSvcInct);
+
+/*****************************************************************************
+
+  FUNCTION NAME: cpSccReEnterReleaseReq
+
+  DESCRIPTION:
+    Request to deactivate packet data service. This requires to go back to task level and come
+    back in again.
+
+  PARAMETERS:
+     none.
+
+  RETURNED VALUES:
+     none.
+
+*****************************************************************************/
+void cpSccReEnterReleaseReq( void );
+/***************************************************************************
+ *
+ * Function Name:      cpSccServiceConfigurationReq
+ *
+ * Description:      Request to change the current service configuration
+ *
+ * Parameters:         ServiceConfiguration* servCfg: Pointer to the desired
+ *                         service configuration
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccServiceConfigurationReq( ServiceConfiguration* servCfg ) ;
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccServiceControlReq
+ *
+ * Description:      Request to send a service option control message or
+ *                      service option control order
+ *
+ * Parameters:      kal_uint8 conRef:  connection reference
+ *                kal_uint16 serviceOption:  service option corresponding to
+ *                         the message being sent
+ *                kal_uint8 length:  length of the message
+ *                kal_uint8* ctlRec:  control record
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccServiceControlReq (kal_uint8 conRef, kal_uint16 serviceOption,
+                             kal_uint8 length, kal_uint8* ctlRec) ;
+
+/***************************************************************************
+ *
+ * Function Name:      cpSccServiceOptionReq
+ *
+ * Description:   Request to change the current service option
+ *
+ * Parameters:      kal_uint16 serviceOption: desired service option
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpSccServiceOptionReq(kal_uint16 serviceOption) ;
+
+/***************************************************************************
+ *
+ * Function Name:      dsSccAlertInd
+ *
+ * Description:      Indication SCC has received a data service alert
+ *
+ * Parameters:      FORInfoData *alert: information about alert
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dsSccAlertInd(kal_uint16 serviceOption, FORInfoData *alert) ;
+
+/***************************************************************************
+ *
+ * Function Name:      dsSccConnectInd
+ *
+ * Description:      Indication the data service option is connected
+ *
+ * Parameters:         kal_uint16 serviceOption:  service option connected
+ *                   kal_bool channel:  primary traffic or secondary
+ *                   kal_bool origDir:   KAL_FALSE:  mobile terminated
+ *                                  KAL_TRUE:     mobile originated
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dsSccConnectInd(kal_uint16 serviceOption, kal_bool channel, kal_bool origDir);
+
+/***************************************************************************
+ *
+ * Function Name:      dsSccOrigFailInd
+ *
+ * Description:      Indication the last requested origination failed
+ *
+ * Parameters:         ORIG_FAIL_REASON reason: reason for failure
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dsSccOrigFailInd(kal_uint8 reason) ;
+
+
+/***************************************************************************
+ *
+ * Function Name:      dsSccReadyInd
+ *
+ * Description:      Indication the mobile station is in the idle state and
+ *                   has acquired a system with the given parameters
+ *
+ * Parameters:       BandClass band:  Band class (0,1,3..)
+ *                   kal_uint8 block:  Serving System (A,B...F)
+ *                   kal_uint16 sid:    System Id
+ *                   kal_uint16 nid:    Network Id
+ *                   kal_uint8 type:  Control channel type
+ *                               (0 -- CDMA)
+ *                               (1 -- TDMA)
+ *                               (2 -- AMPS)
+ *                   kal_uint8 pRev:  Protocol Revision
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dsSccReadyInd(SysCdmaBandT band, kal_uint8 block, kal_uint16 sid,
+                  kal_uint16 nid, kal_uint8 pRev);
+
+
+/***************************************************************************
+ *
+ * Function Name:      lsSccReadyInd
+ *
+ * Description:      Indication the CPE has entered the idle state and has
+ *                      acquired a system with the given parameters
+ *
+ * Parameters:       BandClass band:  Band Class (0,1...)
+ *                   kal_uint8 block:  CDMA Block (A,B,...)
+ *                   kal_uint16 sid:  system Id
+ *                   kal_uint16 nid:  network Id
+ *                   kal_uint8 type:  type of system
+ *                                  (0 -- CDMA)
+ *                                  (1 -- TDMA)
+ *                                  (2 -- ANALOG)
+ *                   kal_uint8 pRev:  Protocol revision of the BS
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lsSccReadyInd( SysCdmaBandT band, kal_uint8 block, kal_uint16 sid,
+                              kal_uint16 nid, kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:      lsSccSOCMsgInd
+ *
+ * Description:       Indication of an incoming SOC message for loopback
+ *                      services
+ *
+ * Parameters:         kal_uint8 *ctlRec:  SOC message
+ *                     kal_uint8 length:  Length of message
+ *                     kal_uint32 actionTime:  action time of the message
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lsSccSOCMsgInd(kal_uint8 *ctlRec, kal_uint8 length, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:      osSccConnectInd
+ *
+ * Description:      Indication the otasp service is connected
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void osSccConnectInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:      osSccOrigInd
+ *
+ * Description:      Indication the voice service has received an OTASP
+ *                   dialled request from the user (*act).
+ *
+ * Parameters:         kal_uint8 *digits: digits dialled by user
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void osSccOrigInd(kal_uint8 *digits);
+
+/***************************************************************************
+ *
+ * Function Name:      osSccDisconnectInd
+ *
+ * Description:      Indication the OTASP call has been terminated
+ *
+ * Parameters:      kal_uint8 reason:  Reason for disconnect (see scc_data.h)
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void osSccDisconnectInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      osSccMsgConfirmInd
+ *
+ * Description:      Indication the last message sent was delivered
+ *                      successfully
+ *
+ * Parameters:    kal_bool success
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void osSccMsgConfirmInd(kal_bool success);
+
+/***************************************************************************
+ *
+ * Function Name:      osSccRcvMsgInd
+ *
+ * Description:      Indication of an incoming OTASP message
+ *
+ * Parameters:      kal_uint8 *data:  pointer to the message
+ *                kal_uint8 length:  length of the message
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void osSccRcvMsgInd(kal_uint8 *data, kal_uint8 length);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccAlertInd
+ *
+ * Description:      Indication of a BS alert
+ *
+ * Parameters:         kal_uint16 ServiceOption:  service option being connected
+ *                   FORInfoData *alertData: alert data information structure
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccAlertInd(kal_uint16 ServiceOption, FORInfoData *alertData);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccConnectInd
+ *
+ * Description:      Indication the given service option has been connected
+ *
+ * Parameters:         kal_uint16 serviceOption:
+ *                   kal_bool channel:  (KAL_TRUE -- primary)
+ *                                  (KAL_FALSE -- Secondary)
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccConnectInd( kal_uint16 serviceOption, kal_bool channel);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccDormantInd
+ *
+ * Description:      Indication the currently connected packet service has
+ *                   entered the dormant state.
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccDormantInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccDormantTimerControlInd
+ *
+ * Description:      Indication a valid dormant timer control SOC message has
+ *                      been received
+ *
+ * Parameters:         kal_bool enable:  KAL_TRUE -- BS/MSC control of the dormant timer
+ *                                        is disabled
+ *                                 KAL_FALSE -- BS/MSC control of the dormant
+ *                                          timer is enabled
+ *                   kal_uint8 time:  value of the dormant timer in deci seconds
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccDormantTimerControlInd(kal_bool enable, kal_uint8 time);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccEventInd
+ *
+ * Description:      Indication of a packet call control event
+ *
+ * Parameters:         kal_uint8 event:  Event which occurred (see IS-707-A4
+ *                                                       table 7.4.2.2)
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccEventInd(kal_uint8 event);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccOrigFailInd
+ *
+ * Description:      Indication the current attempt at origination has
+ *                      failed
+ *
+ * Parameters:         ORIG_FAIL_REASON reason:  reason for failure
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccOrigFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccReadyInd
+ *
+ * Description:      Indication the CPE is in the idle state and has acquired
+ *                      a system with the following parameters
+ *
+ * Parameters:       BandClass band:  band class (0,1,2...)
+ *                   kal_uint8 block:  band block (A,B,...F)
+ *                   kal_uint16 sid: system ID
+ *                   kal_uint16 nid: network ID
+ *                   kal_uint8 type: control channel type
+ *                   kal_uint8 pRev:  protocol revision number
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccReadyInd(SysCdmaBandT band, kal_uint8 block, kal_uint16 sid,
+                       kal_uint16 nid, kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccReleaseInd
+ *
+ * Description:      Indication the packet service option has been
+ *                      disconnected
+ *
+ * Parameters:         kal_uint8 reason: reason for disconnection
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccReleaseInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccStateInd
+ *
+ * Description:      Indication the packet service call control has changed
+ *                   state
+ *
+ * Parameters:         kal_uint8 newState: new state
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void psSccStateInd(kal_uint8 newState);
+
+/***************************************************************************
+ *
+ * Function Name:      psSccDormTmoInd
+ *
+ * Description:        Indication of a dormant timer value
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:            Only called if dormant mode is external
+ *
+ ****************************************************************************/
+void psSccDormTmoInd(kal_uint8 dormTmo);
+
+/***************************************************************************
+ * Function Name:      rlpSccEstablishedInd
+ *
+ * Description:      Indication a data service has been established, (Packet
+ *                      or Async Data)
+ *
+ * Parameters:       MultiplexOption txMuxOption: Mux opt, on reverse channel
+ *                   MultiplexOption rxMuxOption: Mux opt. on forward channel
+ *                   kal_uint8 chanType: (0 -- IS-95 or IS-95A)
+ *                                   (1 -- IS-95B)
+ *                   kal_bool encParmsRcvd: indicates if auth. parameters are
+ *                            given
+ *                   kal_uint32 rand: random number sent from the BS
+ *                   kal_uint8* ssdB: 8 byte ssdb value calculated by the mobile
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void rlpSccEstablishedInd( MultiplexOption txMuxOption,
+                           MultiplexOption rxMuxOption,
+                           kal_uint16          forSchMuxOption,
+                           kal_uint16          revSchMuxOption,
+                           kal_uint8 chanType,
+                           kal_bool            encParmsRcvd,
+                           kal_uint32          rand,
+                           kal_uint8*          ssdB ) ;
+
+/***************************************************************************
+ *
+ * Function Name:      rlpSccResetReq
+ *
+ * Description:      Indication to reset the RLP connection
+ *
+ * Parameters:         MultiplexOption txRateSet:  Mux option on reverse channel
+ *                   MultiplexOption rxMuxOption: Mux opt. on forward channel
+ *                   kal_uint8 chanType: (0 -- IS-95 or IS-95A)
+ *                                   (1 -- IS-95B)
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void rlpSccResetReq( MultiplexOption txMuxOption,
+                     MultiplexOption rxMuxOption,
+                     kal_uint16          forSchMuxOption,
+                     kal_uint16          revSchMuxOption,
+                     kal_uint8           chanType,
+                     kal_bool            reOpen) ;
+
+/***************************************************************************
+ *
+ * Function Name:      smsSccRxInd
+ *
+ * Description:   Indication an SMS message has arrived
+ *
+ * Parameters:
+ *                kal_uint8* data:  Pointer to the message
+ *                kal_uint16 length:  length of the message
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void smsSccRxInd(kal_uint8* data, kal_uint16 len);
+
+/***************************************************************************
+ *
+ * Function Name:      smsSccTxRsp
+ *
+ * Description:      Response to a previously submitted SMS message
+ *
+ * Parameters:         kal_bool success:  success of the sent message
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void smsSccTxRsp(kal_bool success, kal_bool resend);
+
+/***************************************************************************
+ *
+ * Function Name:      sysSccKillTimerReq
+ *
+ * Description:      Indication an SCC timer has expired
+ *
+ * Parameters:         kal_uint16 timerId: ID of the expired timer
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sysSccKillTimerReq(kal_uint16 timerId);
+
+/***************************************************************************
+ *
+ * Function Name:      sysSccStartTimerReq
+ *
+ * Description:      Request to the system to start a timer
+ *
+ * Parameters:         kal_uint32 duration:  Timeout period in MilliSeconds
+ *
+ * Returns:            kal_uint16 timer id
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_uint16 sysSccStartTimerReq (kal_uint32 duration);
+
+/***************************************************************************
+ *
+ * Function Name:      vsSccAlertInd
+ *
+ * Description:      Indication an alert message or a voice service option
+ *                   has been received.
+ *
+ * Parameters:         FORInfoData *alert: alert information structure
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vsSccAlertInd(FORInfoData *alert) ;
+
+/***************************************************************************
+ *
+ * Function Name:      vsSccReadyInd
+ *
+ * Description:      Indication the CPE is in the idle state and has
+ *                   acquired a system with the following parameters
+ *
+ * Parameters:
+ *                BandClass band:  Band Class (0,1,...)
+ *                kal_uint8 block:  CDMA Block (A,B,...F)
+ *                kal_uint16 sid:  system ID
+ *                kal_uint16 nid:  network ID
+ *                kal_uint8 type:  Type of system
+ *                            (0 -- CDMA)
+ *                            (1 -- TDMA)
+ *                            (2 -- ANALOG)
+ *                kal_uint8 pRev:  Protocol revision of the BS
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vsSccReadyInd( SysCdmaBandT band, kal_uint8 block, kal_uint16 sid, kal_uint16 nid, kal_uint8 pRev);
+
+/****************************************************************************
+ *
+ * Name:        vsSccSwitchFailInd
+ *
+ * Scope:       public
+ *
+ * Description: Indication that the previously issued switch request failed
+ *
+ * Parameters:
+ *   kal_uint8 reason - reason code: see release and connect fail reason codes.
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vsSccSwitchFailInd (kal_uint8 reason);
+
+#endif /* _SCC_BIOS_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_CPC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_CPC.H
new file mode 100644
index 0000000..2dbf600
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_CPC.H
@@ -0,0 +1,466 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_cpc.h	
+ * Project:				SCC
+ * Original Author: Dan Doucette
+ * Creation Date:   Dec. 3, 1999
+ *
+ * Description:  		Declaration of CPC functions
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_CPC_H
+#define _SCC_CPC_H
+
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_DATA.H"
+#include "SCC_MSC.H"
+#include "SCC_CSC.H"
+
+/***************************************************************************
+ *
+ * Function Name:		cpcReset
+ *
+ * Description:		Initialize all CPC static data
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcReset(void);
+
+/*
+ *    Interface from NEG
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		cpcNegConnectInd
+ *
+ * Description:		Indicates service negotiation has finished and the 
+ * 						given configuration is now valid
+ *
+ * Parameters:			ServiceConfiguration* cfg:  New Configuration
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcNegConnectInd(ServiceConfiguration* cfg);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcNegRejectInd
+ *
+ * Description:		Indication a request to connect a service option has 
+ * 							failed
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcNegRejectInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcNegPageInd
+ *
+ * Description:		Indication a page has arrived for the given service 
+ * 							option
+ *
+ * Parameters:			ServiceOption so:  Paged service option
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcNegPageInd(SysServiceOptionT so, SCResponse rsp);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcNegXscInit
+ *
+ * Description:		 clear the global flags of all service config modules 
+ *
+ * Parameters:          None
+ *
+ * Returns:             None
+ *
+ ****************************************************************************/
+void cpcNegXscInit(void);
+
+/*
+ *    Interface from All Service Controllers
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		cpcXscAnswerInd
+ *
+ * Description:		Answer Indication for incoming call
+ *
+ * Parameters:			ServiceType st: Service type of the controller answering
+ * 							the call
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcXscAnswerInd(SysServiceTypeT st);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcXscOrigReq
+ *
+ * Description:		Origination request from service controller
+ *
+ * Parameters:			ServiceType st:  Service Type of the controller
+ * 						OrigParms *parms:  Origination parameters
+ * 						
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcXscOrigReq(SysServiceTypeT st, OrigParms *parms);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcXscReleaseReq
+ *
+ * Description:		Service Controller is Requesting Release
+ *
+ * Parameters:			ServiceType st: Service type of the controller
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcXscReleaseReq(SysServiceTypeT st);
+
+
+/***************************************************************************
+ *
+ * Function Name:		cpcXscReleasePkeSvcInactReq
+ *
+ * Description:		Service Controller is Requesting Release and inactive service
+ *                  for packet data is to be indicated 
+ *
+ * Parameters:			ServiceType st: Service type of the controller
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcXscReleasePkeSvcInactReq(SysServiceTypeT st);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcXscSetSocResponse
+ *
+ * Description:		Function allowing the Service controllers to set
+ * 							the return value for the SOC order/msg
+ *
+ * Parameters:			kal_uint8 resp:  Response Code
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcXscSetSocResponse(kal_uint8 resp);
+
+/***************************************************************************
+ *
+ * Function Name:		cpcCopyConfig
+ *
+ * Description:		Commonly used utility function to copy one Service
+ * 						Configuration to another
+ *
+ * Parameters:			ServiceConfiguration *to:  Pointer to the destination 
+ * 							configuration
+ * 						ServiceConfiguration *from: Pointer to the source config
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcCopyConfig(ServiceConfiguration *to, const ServiceConfiguration *from);
+
+
+/*
+ * 	Interface from the Voice Services Controller
+ */
+
+/****************************************************************************
+ *
+ * Name:        cpcVscSwitchReq 
+ *
+ * Scope:       public
+ *
+ * Description: Request to change to currenlty connected voice service.
+ *              
+ * Parameters:
+ *   ServiceType svcType - new service type.
+ *   kal_uint16 svcOpt - new service option.
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cpcVscSwitchReq (SysServiceTypeT svcType, kal_uint16 svcOpt);
+
+
+/****************************************************************************
+ *
+ * Name:        sccSaveMaxNumAltSo 
+ *
+ * Scope:       public
+ *
+ * Description: Request to save the given value as MAX_NUM_ALT_SO
+ *              
+ * Parameters:  kal_uint8 max_so - the MAX_NUM_ALT_SO value
+ *
+ * Returns:     (none)
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccSaveMaxNumAltSo(kal_uint8 max_so);
+
+
+/****************************************************************************
+ *
+ * Name:        sccWriteAltSo 
+ *
+ * Scope:       public
+ *
+ * Description: Writes the alternative service option information into
+ *              the outgoing DACH Origination or Page Response Message
+ *              using the provided service option value.
+ *              
+ * Parameters:  kal_uint8 *data - the pointer to outgoing message
+ *              kal_uint16 *index - the bit position in outgoing message to
+ *                              write to
+ *              kal_uint16 so - the service option value is us
+ *              kal_uint8 num_alt_so - the number of alternative service options
+ *                                 to include in outgoing message
+ *
+ * Returns:     (none)
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void sccWriteAltSo(kal_uint8 *data, kal_uint16 *index, kal_uint16 so, kal_uint8 num_alt_so);
+
+
+/****************************************************************************
+ *
+ * Name:        sccProfilesFindSo
+ *
+ * Scope:       public
+ *
+ * Description: Determines if the provided service option is among
+ *              those in the provided configuration list.
+ *
+ * Parameters:  kal_uint16 serv_opt - the service option value
+ *              ServCfgParms profiles - the list of service configurations
+ *              kal_uint8 num - number of configs in profiles
+ *
+ * Returns:     kal_bool - KAL_TRUE - service option is an element in list
+ *                     KAL_FALSE - is not
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccProfilesFindSo(kal_uint16 serv_opt, ServCfgParms *profiles, kal_uint8 num);
+
+
+/****************************************************************************
+ *
+ * Name:        sccSoFindSo
+ *
+ * Scope:       public
+ *
+ * Description: Determines if the provided service option is among
+ *              those in the provided service option list.
+ *
+ * Parameters:  kal_uint16 serv_opt - the service option value
+ *              kal_uint16 *supp_so - the list of service options
+ *              kal_uint8 num - number of configs in supp_so
+ *
+ * Returns:     kal_bool - KAL_TRUE - service option is an element in list
+ *                     KAL_FALSE - is not
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+kal_bool sccSoFindSo(kal_uint16 serv_opt, kal_uint16 *supp_so, kal_uint8 num);
+
+
+/****************************************************************************
+ *
+ * Name:        sccGetNumAltSo 
+ *
+ * Scope:       public
+ *
+ * Description: Returns the number of alternative service options
+ *              supported by the mobile for the given service option.
+ *              
+ * Parameters:  kal_uint16 serv_opt - the "main" SO in use
+ *
+ * Returns:     kal_uint8 - the number of service options of the same type
+ *                      as serv_opt supported by the mobile.  This means
+ *                      the serv_opt is included/counted in the number.
+ *
+ * Notes:       This function needs to be run before sccWriteAltSo()
+ *              is run.
+ *
+ ****************************************************************************/
+kal_uint8 sccGetNumAltSo(kal_uint16 serv_opt);
+
+
+/***************************************************************************
+ *
+ * Function Name:   cpcGetState() 
+ *
+ * Description:     Returns current CPC State 
+ *
+ * Parameters:      None 
+ *
+ * Returns:         CpcStates
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+CpcStates cpcGetState(void);
+
+void ReportConnectRleaseIndMsg(void);
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccCpcSensitiveClean(void);
+#endif
+#endif /* _SCC_CPC_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_CSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_CSC.H
new file mode 100644
index 0000000..1a61bc1
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_CSC.H
@@ -0,0 +1,358 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:         scc_csc.h
+ * Project:          SCC
+ * Original Author:    mclee 
+ * Creation Date:      2/8/02
+ *
+ * Description:      prototype of functions used for Location services
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.3 $
+ *
+ * $Log: SCC_CSC.H $
+ *
+ * 07 04 2019 lemon.xiong
+ * [MOLY00418783] [VMOLY]porting code
+ *
+ * 11 26 2018 lemon.xiong
+ * [MOLY00366340] P70 mini dumpÐÅÏ¢ÍÑÃô--- SCC
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.3  2004/09/28 15:33:10  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:19  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:31  fpeng
+ * Initial revision
+ * Revision 1.4  2002/08/08 15:09:08  mclee
+ * Add prototype sccLocReleaseReq()
+ * Revision 1.3  2002/06/06 14:53:58  bsharma
+ * Updated Copyright info.
+ * Revision 1.2  2002/04/18 09:53:51  mclee
+ * Increase functionality for 801
+ * Revision 1.1  2002/02/27 15:53:17  mclee
+ * Initial revision
+ * Revision 1.1  2002/02/08 10:57:32  mclee 
+ ************************************************************************/
+
+#ifndef _SCC_CSC_H
+#define _SCC_CSC_H      1
+
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_DBC.H"
+
+/***************************************************************************
+ *
+ * Function Name:      cscInit
+ *
+ * Description:      Initialize all static data
+ *
+ * Parameters:      None
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscInit(void);
+
+/***************************************************************************
+ *
+ * Function Name:    cscGetCurCfg
+ *
+ * Description:      Returns the Current configuration within CSC
+ *
+ * Parameters:       None
+ *
+ * Returns:          ServiceConfiguration*: pointer to the Current
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* cscGetCurCfg(void);
+
+/***************************************************************************
+ *
+ * Function Name:      cscDbcDataBurstInd
+ *
+ * Description:      Indication of an Loc Data Burst Message
+ *
+ * Parameters:     
+ *                  kal_uint8 *data:   Pointer to the message
+ *                  kal_uint8 length:  Length of the message            
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscDbcDataBurstInd(kal_uint8 *data, kal_uint8 length);
+
+/***************************************************************************
+ *
+ * Function Name:      cscDbcTxRsp
+ *
+ * Description:      Indication if the last sent Location message was sucessfully
+ *                        delivered to the BS/MSC
+ *
+ * Parameters:      kal_bool success: Indication of success
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscDbcTxRsp (kal_bool success);
+
+/***************************************************************************
+ *
+ * Function Name:      cscDbcDisconnectInd
+ *
+ * Description:      Indication if the last sent Location message was sucessfully
+ *                        delivered to the BS/MSC
+ *
+ * Parameters:      kal_bool success: Indication of success
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscDbcDisconnectInd (void);
+
+/***************************************************************************
+ *
+ * Function Name:      cscDbcConnectInd
+ *
+ * Description:      Indicate 801 call connected
+ *
+ * Parameters:      None 
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscDbcConnectInd (void);
+
+/****************************************************************************
+ *
+ * Name:   sccLocTxReq 
+ *
+ * Description:   Originates a Location Service Option call, so that the 
+ *                Location message can be sent on Traffic.
+ *
+ * Parameters:    kal_uint8* data - data to send
+ *                kal_uint16 len - number of octets
+ *                kal_bool confirm -  send confirmed (KAL_TRUE) or unconfirmed
+ *
+ * Returns:       (nothing)
+ *
+ * Notes:         No dialled digits are sent in the Origination Message
+ *                (637-A: 2.4.1.1.2.3 Traffic Channel Setup)
+ *
+ *****************************************************************************/
+void sccLocTxReq(kal_uint8* data, kal_uint16 len, kal_bool confirm);
+
+/****************************************************************************
+ *
+ * Name:   sccLocSaveChannel
+ *
+ * Description:   Saves the desired method to determine which channel the
+ *                Loc message is to be sent on.
+ *
+ * Parameters:    UINT6 chan - the selection method
+ *
+ * Returns:       (nothing)
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void sccLocSaveChannel(kal_bool send_traffic);
+
+/***************************************************************************
+ *
+ * Function Name:      cscNegGetServCfgNoConnections
+ *
+ * Description:      Returns the Preferred Service Configuration given
+ *                   a valid service option number
+ *
+ * Parameters:         ServiceOption:  Valid Service Option
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid 
+ *                                           ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* cscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:      cscGetPrefServCfg
+ *
+ * Description:      Returns the Preferred Service Configuration
+ *
+ * Parameters:       void
+ *
+ * Returns:          ServiceConfiguration *: Pointer to a valid 
+ *                                           ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* cscGetPrefServCfg(void);
+
+
+/***************************************************************************
+ *
+ * Function Name:      cscNegServiceConfigurationInitiation
+ *
+ * Description:      Indication to SCC to begin the process of service
+ *                   configuration negotiation
+ *
+ * Parameters:         kal_uint8 rs: requested rate set of returned config
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid service 
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* cscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:      cscNegServiceConfigurationValidation
+ *
+ * Description:      Validate the given service configuration and 
+ *                   propose an alternate if the given configuration
+ *                   is not supported and val is KAL_FALSE
+ *
+ * Parameters:         ServiceConfiguration *sc: Input -- pointer to a service 
+ *                                              configuration
+ *                                               Output -- alternate 
+ *                                                         configuration
+ *                   kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ *                      this routine will not propose an alternate 
+ *                      configuration if the given configuration is 
+ *                      not supported
+ *
+ * Returns:            SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse cscNegServiceConfigurationValidation
+(kal_bool valOnly, ServiceConfiguration *cfg);
+
+/***************************************************************************
+ *
+ * Function Name:      cscNegServiceOptionValidation
+ *
+ * Description:      Validate service option and propose alternate if 
+ *                   it is not supported
+ *
+ * Parameters:         ServiceOption *so: Input: Pointer to service option number
+ *                                              to be validated
+ *                                        Output: Alternative Service Option
+ *
+ * Returns:            SCResponse:      Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse cscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+/***************************************************************************
+ *
+ * Function Name:    cscGetProfile
+ *
+ * Description:      Returns the address of the static structure _Profiles.
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:            This is used in support of alternative service options.
+ *
+ ****************************************************************************/
+ServCfgParms *cscGetProfile(void);
+
+/***************************************************************************
+ *
+ * Function Name:   cscE911Call 
+ *
+ * Description:     E911 change in Protocol Stack.  Inform 801 stack.
+ *
+ * Parameters:      kal_bool mode: Is E911 mode True or False 
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void cscE911Call(kal_bool mode);
+
+/***************************************************************************
+ *
+ * Function Name:    cscDiscardOutstanding 
+ *
+ * Description:      Tunnel request for 801 to discard any outstanding requests. 
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          none 
+ *
+ * Notes:            
+ *
+ ****************************************************************************/
+void cscDiscardOutstanding(void);
+
+void cscCpcInit( void );
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccCscSensitiveClean(void);
+#endif
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_DATA.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DATA.H
new file mode 100644
index 0000000..5c75151
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DATA.H
@@ -0,0 +1,302 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_data.h
+ * Project:				SCC
+ * Original Author: 	Dan Doucette
+ * Creation Date:   Nov 23, 1999
+ *
+ * Description:    This file contains all of the SCC specific data types.
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.3 $
+ *
+ * $Log: SCC_DATA.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.3  2006/01/20 15:44:24  blee
+ * Added PS_DORMANT in Svc Type structure
+ * Revision 1.2  2004/03/25 12:07:19  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:31  fpeng
+ * Initial revision
+ * Revision 1.10  2003/04/03 13:52:22  ameya
+ * Removed the enum ServiceType.
+ * Revision 1.9  2002/06/06 14:54:13  bsharma
+ * Updated Copyright info.
+ * Revision 1.8  2002/02/27 20:54:33  mclee
+ * IS801 SO 35 SO36 support
+ * Revision 1.7  2002/01/02 14:46:58  AMALA
+ * Added changes for new system selection.
+ * Revision 1.6  2001/11/20 12:17:43  mclee
+ * Add SERVICETYPE_MISMATCH_RELEASE_REASON for CR319
+ * Revision 1.5  2001/10/23 16:02:13  byang
+ * Added support for SO32 and SO55.
+ * Revision 1.4  2001/08/30 15:11:42  byang
+ * Added dependency for Ms_Cap_Db.h and Identity.h.
+ * Revision 1.3  2001/08/14 11:23:55  hhong
+ * Add SO33.
+ * Revision 1.2  2001/08/06 13:37:07  akayvan
+ * SO_MARKOV_54 was added to SO_Number. 
+ * Revision 1.1  2001/01/17 10:57:28  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:51  fpeng
+ * Initial revision
+ * Revision 1.2  2000/08/24 00:11:42Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.13  2000/03/11 01:00:06  bcassidy
+ * 1. Fix service option definitions for ASYNC/FAX_PREFER_RS1.
+ *
+ * Revision 1.12  2000/03/09 23:37:38  bcassidy
+ * 1. Add reason codes to support service switching operations.
+ * 2. Add SSDB_LEN definition.
+ * 3. Add bit map definitions for sccDsEnableReq.
+ * 4. Add FAX_SERVICE to VS service sub-types.
+ *    [To support swith-to-fax operation.]
+ *
+ * Revision 1.11  2000/02/08 16:08:21  bcassidy
+ * 1. Fix new enum definitions.
+ *
+ * Revision 1.10  2000/02/05 20:38:36  bcassidy
+ * 1. Add SwitchServiceType definitions for modified cfgSccCheckCpn
+ *    function.
+ * 2. Merge origFail and release reason codes into a common set.
+ * 3. Redefine data pre-arrangment modes.
+ * 4. Redefine Packet Data call states and events.
+ *
+ * Revision 1.9  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.8  1999/12/16 01:35:53  ddoucett
+ * removed HP_DATA_TEST compile define
+ *
+ * Revision 1.7  1999/12/14 23:41:07  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.6  1999/12/13 03:17:02  ddoucett
+ * changed the HP_DATA_TEST conditions.
+ *
+ * Revision 1.5  1999/12/12 22:51:54  ddoucett
+ * fixed the service option list from 4100 to 0x4100
+ *
+ * Revision 1.4  1999/12/09 19:19:51  ddoucett
+ * updated for HP_DATA_TEST flag
+ *
+ * Revision 1.3  1999/12/08 06:03:38  ddoucett
+ * Contains all data types for SCC
+ *
+ * Revision 1.2  1999/11/30 21:04:39  ddoucett
+ * fixed sub type numbers to eliminate 0
+ *
+ * Revision 1.1  1999/11/30 00:48:40  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_DATA_H
+#define _SCC_DATA_H			1
+
+#include "Msg_defn.h"   /* definition of CallingPartyNumber */ 
+#include "Serv_cfg.h"   /* defintion of 'ServiceConfiguration' */
+#include "Ms_Cap_Db.h"  /* defintion of 'MsCapDb' */
+#include "engine.h"     /* defintion of 'OrigParms' */
+#include "channel.h"    /* definition of BandClass */
+/* Amala K. 12/31/01 */
+#include "PREFROAM.H"
+
+#include "identity.h"     /* definition of CPStatus.mode */
+/*
+ * 	Data Structure for Service Negotiation
+ */
+
+typedef struct {
+	kal_uint8 Modes;
+	ServiceConfiguration Cfg;
+} ServCfgParms;
+
+enum SwitchServiceType_
+{
+  SST_Voice,
+  SST_AsyncData,
+  SST_Fax,
+  NUM_SSTs
+};
+typedef kal_uint8 SwitchServiceType;
+
+/* ----- Origination Failure, Release and Switch Fail Reason Codes -------- */
+#define GENERAL_ORIG_FAIL_REASON	0
+#define CANCEL_ORIG_FAIL_REASON		1
+#define INTERCEPT_ORIG_FAIL_REASON	2
+#define REORDER_ORIG_FAIL_REASON	3
+#define RELEASE_ORIG_FAIL_REASON	4
+#define REJECT_ORIG_FAIL_REASON		5
+#define DISABLED_ORIG_FAIL_REASON	6
+#define BUSY_ORIG_FAIL_REASON		7
+#define INVALID_CFG_ORIG_FAIL_REASON	8
+#define PAGED_ORIG_FAIL_REASON          9
+#define RELEASING_ORIG_FAIL_REASON      10
+#define ANALOG_CONNECT_ORIG_FAIL_REASON 11
+
+#define NO_RELEASE_REASON                   12
+#define NORMAL_RELEASE_REASON		        13
+#define FADE_RELEASE_REASON		            14
+#define DISABLED_RELEASE_REASON	            15
+#define REJECTED_RELEASE_REASON             16
+#define SWITCH_COMPLETE_RELEASE_REASON      17
+
+#define SWITCH_FAIL_NOT_CONNECTED           18
+#define SERVICETYPE_MISMATCH_RELEASE_REASON 19
+#define INTERCEPT_MT_FAIL_REASON 20
+
+/*
+ *		Channel Rates
+ */
+#define RATE_ONE			0	/*  1  */
+#define RATE_THREE_QUARTER		1	/* 3/4 */
+#define RATE_HALF			2	/* 1/2 */
+#define RATE_ONE_QUARTER		3	/* 1/4 */
+#define RATE_ZERO			4	/*  0  */
+
+/* Data encryption parameters */
+#define SSDB_LEN 8
+
+/*
+ *		Control channel Types 
+ */
+#define CDMA_CONTROL_CHANNEL		0
+#define TDMA_CONTROL_CHANNEL		1
+#define AMPS_CONTROL_CHANNEL		2
+
+/*
+ *		Traffic Channel Types
+ */
+#define IS95_OR_IS95A			0
+#define IS95B				1
+
+/*
+ *		Async Data and Fax data page accept maps
+ */
+#define ACCEPT_NO_DATA_SERVICES		0
+#define ACCEPT_ASYNC_DATA_ONLY		1
+#define ACCEPT_FAX_ONLY			2
+#define ACCEPT_ASYNC_DATA_AND_FAX	3
+
+/*
+ *		Pre Arrangement Modes 
+ */
+#define PAM_Disable		   0
+#define PAM_FaxOneShotAnyCpn	   1
+#define PAM_FaxPermanentAnyCpn	   2
+#define PAM_AsyncOneShotAnyCpn	   3
+#define PAM_AsyncPermanentAnyCpn   4
+#define PAM_OneShotSpecificCpns    5
+#define PAM_PermanentSpecificCpns  6
+
+/*
+ *		Negotiation Modes (Bit Maps)
+ */
+#define NEG_NONE  0
+#define NEG_SON		1
+#define NEG_SN 		2
+#define NEG_BOTH 	3
+
+
+/* Data Service Enable map bit definitions */
+#define DS_ENA_AsyncData      BIT0
+#define DS_ENA_Fax            BIT1
+#define DS_ENA_BrowserOnAsync BIT6
+
+
+/* Packet Data State and Event Types:
+ * See IS-707-A.3, Table 7.4.2-2  */
+enum _PacketStates
+{
+  PKST_Inactive,
+  PKST_InitIdle,
+  PKST_InitTraffic,
+  PKST_ConnectedPrimary,
+  PKST_ConnectedSecondary,
+  PKST_DormantIdle,
+  PKST_DormantTraffic,
+  PKST_ReconnectIdle,
+  PKST_ReconnectTraffic,
+  NUM_PKSTs
+};
+typedef kal_uint8 PacketStates;
+
+enum _PacketEvents
+{
+  PKEV_EnterIdle,
+  PKEV_IdleHandoffSameSystem,
+  PKEV_IdleHandoffNewSystem,
+  PKEV_PageReceived,
+  PKEV_OriginationSent,
+  PKEV_TrafficChannelAssigned,
+  PKEV_HardHandoff,
+  NUM_PKEVs
+};
+typedef kal_uint8 PacketEvents;
+
+#define MSPD_DISABLED  0
+#define MSPD_IF_AVAIL  1
+#define MSPD_ONLY      2
+
+
+/* ------------------- Service Controller Sub-types ----------------------- */
+#define UNKNOWN_SUBTYPE	0
+
+/*
+ *  	Data Burst Types
+ */
+#define MSC_BURST_TYPE		3
+#define OSC_BURST_TYPE		4
+#define CSC_BURST_TYPE 		5
+
+/*
+ * 	Macros for Calculating Mux Options and Rate Sets
+ */
+
+/* Calculates the Mux Option given the rate set and number of supp channels */
+#define MUX_OPT(numSuppChans,rateSet) ((numSuppChans*2)+rateSet)
+
+/* Calculates the rate set given the mux option */
+#define RATE_SET(muxOpt) ((muxOpt%2)?1:2)
+
+/*	Calculates the number of supplemental channels given the mux option */
+#define NUM_SUPP_CHANS(muxOpt) ((muxOpt-1)/2)
+
+#endif /* SCC_DATA_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_DBC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DBC.H
new file mode 100644
index 0000000..bb0582d
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DBC.H
@@ -0,0 +1,343 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:          scc_dbc.h
+ * Project:            SCC
+ * Original Author:    Dan Doucette
+ * Creation Date:      Nov 20, 1999
+ *
+ * Description:     Data burst messaging controller for SCC engine
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: SCC_DBC.H $
+ *
+ * 08 28 2017 lemon.xiong
+ * [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ * 	
+ * 	scc code optimization and scc fsm trace change
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.2  2004/03/25 12:07:20  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:31  fpeng
+ * Initial revision
+ * Revision 1.5  2002/08/08 15:09:40  mclee
+ * Add prototype dbcGetConnectedType()
+ * Revision 1.4  2002/06/06 14:54:24  bsharma
+ * Updated Copyright info.
+ * Revision 1.3  2002/02/27 20:55:02  mclee
+ * IS801 Loc Data Burst Support
+ * Revision 1.2  2001/11/29 14:13:06  kmar
+ * Modified function prototype for dbcXscSendMsgReq().
+ * Revision 1.1  2001/01/17 10:57:29  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:51  fpeng
+ * Initial revision
+ * Revision 1.2  2000/08/24 00:11:41Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.6  2000/02/17 19:20:28  dfischer
+ * Added api to get state
+ *
+ * Revision 1.5  2000/02/15 17:40:23  ddoucett
+ * added sccCpBroadcastDataBurstInd and removed the kal_bool broadcast
+ * parameter from the regular databurst ind
+ *
+ * Revision 1.4  1999/12/16 01:22:50  ddoucett
+ * added databurst response capabilities in the busy state
+ *
+ * Revision 1.3  1999/12/14 23:41:07  ddoucett
+ * Redesign and recoding of DataBurst controller
+ *
+ * Revision 1.2  1999/12/08 19:27:06  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.1  1999/12/08 06:03:38  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_DBC_H
+#define _SCC_DBC_H   1
+
+/*
+ *    Dependencies
+ */
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+#include "SCC_MSC.H"
+#include "SCC_CSC.H"
+#include "SCC_OSC.H"
+#include "SCC_NEG.H"
+
+/***************************************************************************
+ *
+ * Function Name:      dbcReset
+ *
+ * Description:      Initialize the FSM and all static data
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcReset(void);
+
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcAccessInd
+ *
+ * Description:      Indicates the CPE is in the access state
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcAccessInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcAlertInd
+ *
+ * Description:      Indicates an incoming call for any databurst service
+ *
+ * Parameters:         FORInfoData *alert: Pointer to alert information
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcAlertInd(FORInfoData *alert);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcConnectFailInd
+ *
+ * Description:      Indication of a databurst service connect failure
+ *
+ * Parameters:         kal_uint8 reason: reason for failure (scc_data.h)
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcConnectFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcConnectInd
+ *
+ * Description:      Indicates a service option connection 
+ *
+ * Parameters:         ServiceConfiguration *cfg:  Pointer to the connected 
+ *                                             service configuration
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcConnectInd(ServiceConfiguration *cfg, kal_uint8 cn);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcDisconnectInd
+ *
+ * Description:      Indicates the service option has been disconnected
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcDisconnectInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcIdle
+ *
+ * Description:      Indicates the CPE is in the idle state
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcIdle(void);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcCpcPageInd
+ *
+ * Description:      Indication of a page from the base station
+ *
+ * Parameters:         ServiceOption so:  service option being paged
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcCpcPageInd(SysServiceOptionT so);
+
+
+
+
+/*
+ *      Interface from SMS, OTASP, and LOC services
+ *
+ */
+
+
+/***************************************************************************
+ *
+ * Function Name:       dbcXscSendMsgReq
+ *
+ * Description:         Request from SCC_MSC to send a databurst message
+ *
+ * Parameters:          kal_uint8 type: Burst Type of the Message
+ *                      kal_uint8* msg: Pointer to message data
+ *                      kal_uint8 length: length of data in bytes
+ *                      kal_bool confirm: Indicates if base station
+ *                                    acknowledgement is necessary
+ *                      kal_bool traffChan: the channel to send data burst on
+ *                      OrigParms *orig: Origination parameters
+ *
+ * Returns:             None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcXscSendMsgReq(SysServiceTypeT type, kal_uint8* msg, kal_uint8 length, kal_bool confirm, 
+                      kal_bool traffChan, OrigParms *orig);
+
+/***************************************************************************
+ *
+ * Function Name:      dbcXscReleaseReq
+ *
+ * Description:      Indication by the databurst msg service 
+ *
+ * Parameters:      kal_uint8 type:  Service Type requesting release
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dbcXscReleaseReq(SysServiceTypeT type);
+
+/***************************************************************************
+ *
+ * Function Name:	dbcGetConnectedType()
+ *
+ * Description:	Returns currented DBC connected Type 
+ *
+ * Parameters:		None
+ *
+ * Returns:			ServiceType _ConnectedType
+ *
+ ****************************************************************************/
+SysServiceTypeT dbcGetConnectedType(void);
+
+/***************************************************************************
+ *
+ * Function Name: dbcGetSentStaus()
+ *
+ * Description:   Returns _MsgOutstanding
+ *
+ * Parameters:    None
+ *
+ * Returns:       kal_bool _MsgOutstanding 
+ *
+ ****************************************************************************/
+kal_bool dbcGetSentStatus(void);
+
+/***************************************************************************
+ *
+ * Function Name: dbcGetSentMsgType()
+ *
+ * Description:   Returns _SentMsgType 
+ *
+ * Parameters:    None
+ *
+ * Returns:       ServiceType _SentMsgType
+ *
+ ****************************************************************************/
+SysServiceTypeT dbcGetSentMsgType(void);
+kal_bool dbcIsSmsMTConn(void);
+#ifdef MTK_CBP
+kal_bool dbcIsSMSMOTraffic();
+#endif
+
+/***************************************************************************
+ *
+ * Function Name:      dbcGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_uint8 dbcGetState(void);
+
+#ifdef MTK_CBP
+kal_bool dbcGetConnFailReason(void);
+#endif
+
+#endif  /* _SCC_DBC_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_DSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DSC.H
new file mode 100644
index 0000000..e3f6c45
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_DSC.H
@@ -0,0 +1,591 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       	scc_dsc.h
+ * Project:				SCC
+ * Original Author: 	Dan Doucette
+ * Creation Date:   	Dec 1 1999
+ *
+ * Description:  		Declaration of the Data Services Controller signals and 
+ *							functions
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.3 $
+ *
+ * $Log: SCC_DSC.H $
+ *
+ * 07 04 2019 lemon.xiong
+ * [MOLY00418783] [VMOLY]porting code
+ *
+ * 11 26 2018 lemon.xiong
+ * [MOLY00366340] P70 mini dumpÐÅÏ¢ÍÑÃô--- SCC
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.3  2004/09/28 15:33:56  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:21  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:32  fpeng
+ * Initial revision
+ * Revision 1.4  2002/06/06 14:54:34  bsharma
+ * Updated Copyright info.
+ * Revision 1.3  2002/02/06 11:58:09  mclee
+ * Add prototype for new Async and Fax profile functions in DSC.C
+ * Revision 1.2  2001/05/16 11:20:09  yfang
+ * added data service back
+ * Revision 1.1  2001/01/17 10:57:30  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:52  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:38Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.16  2000/03/10 00:01:37  bcassidy
+ * 1. Remove dscCpcSwitchInd
+ *    [Replaced with connectInd].
+ *
+ * Revision 1.15  2000/03/01 23:15:02  bcassidy
+ * 1. Update dscCpcDisconnectInd prototype to match current design.
+ *
+ * Revision 1.14  2000/02/17 19:19:44  dfischer
+ * Added api to get state
+ *
+ * Revision 1.13  2000/02/05 20:24:28  bcassidy
+ * 1. Add prototype and strcture definition for dscViewPrefs.
+ *
+ * Revision 1.12  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.11  1999/12/08 19:27:06  ddoucett
+ * fixed ReadyInd
+ *
+ * Revision 1.10  1999/12/08 06:03:38  ddoucett
+ * ReWork of Data Services controller to use the new Negotiation Procedures
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_DSC_H
+#define _SCC_DSC_H		1
+
+#include <string.h>
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+
+typedef struct
+{
+  kal_uint16 asyncSoPref;
+  kal_uint16 faxSoPref;
+  kal_uint8 pageAcceptMap;
+} DscPref;
+
+/*
+ * 	Common Data Services Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		dscReset
+ *
+ * Description:		Initialize the DSC on power up
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscReset(void);
+
+/***************************************************************************
+ *
+ * Function Name:		dscGetCurCfg
+ *
+ * Description:		Returns the Current configuration within DSC
+ *
+ * Parameters:			None
+ *
+ * Returns:				ServiceConfiguration*: pointer to the Current 
+ * 							configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* dscGetCurCfg(void);
+
+
+/*
+ *		CPC interface to the Data Service Controller 
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpcAlertInd
+ *
+ * Description:		Indication an incoming call for data services is pending
+ *
+ * Parameters:			FORInfoData *alert:  Alert Information
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcAlertInd(FORInfoData *alert);
+
+/***************************************************************************
+ *
+ * Function Name:    dscCpcConnectFailInd
+ *
+ * Description:      Indication the connection attempt failed
+ *
+ * Parameters:       kal_uint8 reason:  Reason for Failure
+ *
+ * Returns:          None
+ *
+ * Notes:
+ *
+ ***************************************************************************/
+void dscCpcConnectFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpcConnectInd
+ *
+ * Description:		Indication the CPC has connected a data service option
+ *
+ * Parameters:			ServiceConfiguration cfg: connected service configuration
+ *							kal_uint8 cn:  Connection Record Index
+ *							kal_bool rlpCtl:  Indication if DSC controlls RLP
+ *							kal_bool origDir:  Indication of the origination direction
+ *								of the call   KAL_FALSE -- mobile terminated call
+ *												  KAL_TRUE -- mobile originated call
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcConnectInd(ServiceConfiguration *cfg, 
+								kal_uint8 cn, kal_bool rlpCtl, kal_bool origDir);
+
+
+/****************************************************************************
+ *
+ * Name:        dscCpcDisconnectInd 
+ *
+ * Scope:       public
+ *
+ * Description: Indication that the currently connected Data service has been
+ *              disconnected.
+ *              
+ * Parameters:
+ *   kal_bool fade - KAL_TRUE: The service was disconnected due to a fade.
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcDisconnectInd (kal_bool fade);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpcPageInd
+ *
+ * Description:		Indication of an incoming page for data services
+ *
+ * Parameters:			kal_uint16 svcOpt:  Service option of the incoming page
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcPageInd(kal_uint16 svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpcSocoInd
+ *
+ * Description:		Indication of an incoming Service Option Control Order
+ * 							for data services
+ *
+ * Parameters:			kal_uint8 ordq:  Message Data
+ * 						kal_uint32 actionTime: Action Time of the message
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcSocoInd(kal_uint8 ordq, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpcSocmInd
+ *
+ * Description:		Indication of an incoming Service Option Control Message
+ * 							for data services
+ *
+ * Parameters:			kal_uint8 conRef:	Connection Record 
+ * 						kal_uint16 svcOpt:	Service Option
+ * 						kal_uint8 *ctlRec:  Message Data
+ * 						kal_uint8 length:  Length of data 
+ * 						kal_uint32 actionTime: Action Time of the message
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpcSocmInd(kal_uint8 conRef, kal_uint16 svcOpt, kal_uint8 *ctlRec, 
+											kal_uint8 length, kal_uint32 actionTime);
+
+
+
+/*
+ *		Interface from Call Processing
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpHandoffInd
+ *
+ * Description:		Indication of a handoff just completed
+ *
+ * Parameters:			kal_uint8 type:  Type of handoff
+ *							kal_bool cfgChanged:  Indication the current configuration 
+ *								has changed
+ *							kal_bool setChanged:  Indication the candidate pilot set has
+ *								changed
+ *							kal_bool freqChanged:  Indication the frequency band has 
+ *								changed
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpHandoffInd(kal_uint8 type, kal_bool cfgChanged, kal_bool setChanged,
+												 kal_bool freqChanged);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpNetworkPRev
+ *
+ * Description:		Indication of the current network protocol revision
+ *
+ * Parameters:			kal_uint8 pRev:  Protocol Revision of the current BS
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpNetworkPRev(kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:       dscCpReadyInd
+ *
+ * Description:         Indication the CPE has found a system with the following
+ *                      parameters
+ *
+ * Parameters:          BandClass band: Band Class of the system
+ *                      kal_uint8 block:  CDMA block (A...F)
+ *                      kal_uint16 sid:  System ID
+ *                      kal_uint16 nid:  Network ID
+ *                      kal_uint8 pRev:  Protocol Revision of the BS
+ *
+ * Returns:             None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpReadyInd(SysCdmaBandT band, kal_uint8 block, kal_uint16 sid, 
+                   kal_uint16 nid, kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpNoSvcInd
+ *
+ * Description:		No Service Currently availible
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpNoSvcInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpRandInd
+ *
+ * Description:		RAND variable update
+ *
+ * Parameters:			kal_uint32 rand:  random BS parameter
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpRandInd(kal_uint32 rand);
+
+/***************************************************************************
+ *
+ * Function Name:		dscCpSsdbInd
+ *
+ * Description:		Update of the SSD parameter
+ *
+ * Parameters:			kal_uint8* ssdb:  Pointer to 8 byte ssdb value
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscCpSsdbInd(kal_uint8 *ssdb);
+
+/*
+ * 	Data Services Service Validation Procedures
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		dscNegGetServCfgNoConnections
+ *
+ * Description:		Returns the Preferred Service Configuration given
+ * 						a valid service option number
+ *
+ * Parameters:			ServiceOption:  Valid Service Option
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid 
+ * 														ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* dscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+
+/***************************************************************************
+ *
+ * Function Name:		dscGetPrefServCfg
+ *
+ * Description:		Get preferred Service Configuration
+ *
+ * Parameters:			None
+ *
+ * Returns:				The preferred Service Configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* dscGetPrefServCfg(void); 
+
+/***************************************************************************
+ *
+ * Function Name:		dscNegServiceConfigurationInitiation
+ *
+ * Description:		Indication to SCC to begin the process of service
+ * 						configuration negotiation
+ *
+ * Parameters:			None
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid service 
+ * 							configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* dscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:		dscNegServiceConfigurationValidation
+ *
+ * Description:		Validate the given service configuration and 
+ * 						propose an alternate if the given configuration
+ * 						is not supported and val is KAL_FALSE
+ *
+ * Parameters:			ServiceConfiguration *sc: Input -- pointer to a service 
+ * 															configuration
+ *															  Output -- alternate 
+ *																			configuration
+ * 						kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ * 							this routine will not propose an alternate 
+ * 							configuration if the given configuration is 
+ * 							not supported
+ *
+ * Returns:				SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse dscNegServiceConfigurationValidation(kal_bool valOnly,
+  										ServiceConfiguration *sc);
+
+/***************************************************************************
+ *
+ * Function Name:		dscNegServiceOptionValidation
+ *
+ * Description:		Validate service option and propose alternate if 
+ * 						it is not supported
+ *
+ * Parameters:			ServiceOption *so: Input: Pointer to service option number
+ * 															to be validated
+ *													 Output: Alternative Service Option
+ *
+ * Returns:				SCResponse:		Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse dscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+
+/****************************************************************************
+ *
+ * Name:        dscViewPrefs 
+ *
+ * Scope:       public
+ *
+ * Description: view the current preference settings.
+ *              
+ * Parameters:  DscPref* pref - Structure to contain the current preference 
+ *                              settings.
+ *
+ * Returns:     none
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void dscViewPrefs (DscPref* pref);
+
+/***************************************************************************
+ *
+ * Function Name:    dscGetProfile
+ *
+ * Description:      Returns the address of the static structure _profiles.
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:            This is used in support of alternative service options.
+ *
+ ****************************************************************************/
+ServCfgParms *dscGetProfile(void);
+
+/****************************************************************************
+ *
+ * Name:        dscGetAsyncProfile 
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _AsyncProfile.
+ *              
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _AsyncProfile
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *dscGetAsyncProfile(void);
+
+/****************************************************************************
+ *
+ * Name:        dscGetFaxProfile 
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _FaxProfile.
+ *              
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _FaxProfile
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *dscGetFaxProfile(void);
+
+/***************************************************************************
+ *
+ * Function Name:      xxxGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+#ifdef TEST
+kal_uint8 dscGetState(void);
+#endif
+
+/***************************************************************************
+ *
+ * Function Name:    dscCpcInit
+ *
+ * Description:      clear global flags.
+ *
+ * Parameters:       (none)
+ *
+ *
+ ****************************************************************************/
+void dscCpcInit(void);
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccDscSensitiveClean(void);
+#endif
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_LSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_LSC.H
new file mode 100644
index 0000000..9cfcf24
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_LSC.H
@@ -0,0 +1,556 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:   scc_lsc.h
+ * Project:      SCC
+ * Original Author: Dan Doucette
+ * Creation Date:   June 30, 1999
+ *
+ * Description:   Header file for loopback service functions
+ *                  from SCC cpc to ls
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * $Id: SCC_LSC.H 1.3 2004/09/28 15:34:24 chinh Exp $
+ * 
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+
+ * removed!
+ *
+ *************************************************************************
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_LSC_H
+#define _SCC_LSC_H
+
+/*
+ *    Dependencies
+ */
+
+#include <string.h>
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+#include "SCC_VSC.H"
+
+/*
+ *    Interface from CPC
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		lscReset
+ *
+ * Description:		Initialize the Loopback Services Controller
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscReset(void);
+
+/***************************************************************************
+ *
+ * Function Name:    lscGetCurCfg
+ *
+ * Description:      Returns the Current configuration within LSC
+ *
+ * Parameters:       None
+ *
+ * Returns:          ServiceConfiguration*: pointer to the Current
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* lscGetCurCfg(void);
+
+
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcConnectFailInd
+ *
+ * Description:		Indication from CPC the requested connection 
+ * 							attempt failed
+ *
+ * Parameters:			kal_uint8 reason:  reason for failure
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcConnectFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcConnectInd
+ *
+ * Description:		Indication from CPC the requested Loopback call 
+ * 							has been connected
+ *
+ * Parameters:			ServiceConfiguration* cfg: Configuration currently
+ * 							connected
+ * 						kal_uint8 cn:  connection number within the configuration
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcConnectInd(ServiceConfiguration* cfg, kal_uint8 cn);
+
+/***************************************************************************
+ *
+ * Function Name:			lscCpcDisconnectInd
+ *
+ * Description:			Indication the Loopback service option has been 
+ * 								disconnected
+ *
+ * Parameters:				kal_uint8 reason: Reason for disconnection
+ *
+ * Returns:					None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcDisconnectInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcAlertInd
+ *
+ * Description:		Indication of an incoming Loopback call
+ *
+ * Parameters:			FORInfoData *alert:  Alert Information
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcAlertInd(FORInfoData *alert);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcPageInd
+ *
+ * Description:		Indication of an incoming page for Loopback services
+ *
+ * Parameters:			ServiceOption svcOpt:  service option of incoming call
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcPageInd(kal_uint16 svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpReadyInd
+ *
+ * Description:		Indication the CP has found a base station with the
+ * 							following properties
+ *
+ * Parameters:			BandClass band:  Band Class (0,1,..)
+ * 						kal_uint8 block:  CDMA Block (A,B,C...)
+ * 						kal_uint16 sid:  System Id
+ * 						kal_uint16 nid:  Network Id
+ * 						kal_uint8 type:  network type
+ * 												(1 -- CDMA)
+ * 												(2 -- TDMA)
+ * 												(3 -- ANALOG)
+ * 						kal_uint8 pRev:  Protocol Revision of the BS
+ *
+ * Returns:
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpReadyInd(SysCdmaBandT band, kal_uint8 block, 
+                   kal_uint16 sid, kal_uint16 nid, kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcNoSvcInd
+ *
+ * Description:		Indication the CP cannot find a BS
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcNoSvcInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcSocoInd
+ *
+ * Description:		Indication of an incoming Service Option Control Order
+ *
+ * Parameters:			kal_uint8 ordq:  Message
+ * 						kal_uint32 actionTime:  Action Time of message
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcSocoInd(kal_uint8 ordq, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:		lscCpcSocmInd
+ *
+ * Description:		Indication of an incoming Service Option Control Message
+ *
+ * Parameters:			kal_uint8 conRef:  Service Configuratin connection reference
+ * 						kal_uint16 svcOpt:  Service Option
+ * 						kal_uint8 *ctlRec:  Message Data
+ * 						kal_uint8 length:  Length of the Message
+ * 						kal_uint32 actionTime:
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void lscCpcSocmInd(kal_uint8 conRef, kal_uint16 svcOpt, kal_uint8 *ctlRec,
+                                 kal_uint8 length, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:		lscGetPrefServCfg
+ *
+ * Description:		Get preferred Service Configuration
+ *
+ * Parameters:			None
+ *
+ * Returns:				The preferred Service Configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* lscGetPrefServCfg(void); 
+
+
+/*
+ * 	Loopback Service Configuration Validation Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		lscNegGetServCfgNoConnections
+ *
+ * Description:		Returns the Preferred Service Configuration given
+ * 						a valid service option number
+ *
+ * Parameters:			ServiceOption:  Valid Service Option
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid 
+ * 														ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* lscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:		lscNegServiceConfigurationInitiation
+ *
+ * Description:		Indication to SCC to begin the process of service
+ * 						configuration negotiation
+ *
+ * Parameters:			None
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid service 
+ * 							configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* lscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:		lscNegServiceConfigurationValidation
+ *
+ * Description:		Validate the given service configuration and 
+ * 						propose an alternate if the given configuration
+ * 						is not supported and val is KAL_FALSE
+ *
+ * Parameters:			ServiceConfiguration *sc: Input -- pointer to a service 
+ * 															configuration
+ *															  Output -- alternate 
+ *																			configuration
+ * 						kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ * 							this routine will not propose an alternate 
+ * 							configuration if the given configuration is 
+ * 							not supported
+ *
+ * Returns:				SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse lscNegServiceConfigurationValidation(kal_bool valOnly,
+  										ServiceConfiguration *sc);
+
+/***************************************************************************
+ *
+ * Function Name:		lscNegServiceOptionValidation
+ *
+ * Description:		Validate service option and propose alternate if 
+ * 						it is not supported
+ *
+ * Parameters:			ServiceOption *so: Input: Pointer to service option number
+ * 															to be validated
+ *													 Output: Alternative Service Option
+ *
+ * Returns:				SCResponse:		Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse lscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+
+/****************************************************************************
+ *
+ * Name:        lscGetProfile
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _Profiles.
+ *
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *lscGetProfile(void);
+
+/****************************************************************************
+ *
+ * Name:        lscGetMarkovProfile
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _Profiles.
+ *
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *lscGetMarkovProfile(void);
+
+/****************************************************************************
+ *
+ * Name:        lscGetLpbkProfile
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _Profiles.
+ *
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *lscGetLpbkProfile(void);
+
+/***************************************************************************
+ *
+ * Function Name:      xxxGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+#ifdef TEST
+kal_uint8 lscGetState(void);
+#endif
+
+void lscCpcInit(void);
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccLscSensitiveClean(void);
+#endif
+
+#endif /* _SCC_LSC_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_MSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_MSC.H
new file mode 100644
index 0000000..a708050
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_MSC.H
@@ -0,0 +1,438 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:         scc_msc.h
+ * Project:          SCC
+ * Original Author:   Dan Doucette
+ * Creation Date:      Nov. 24, 1999
+ *
+ * Description:      Declaration of functions used for SMS services
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.3 $
+ *
+ * $Log: SCC_MSC.H $
+ *
+ * 07 04 2019 lemon.xiong
+ * [MOLY00418783] [VMOLY]porting code
+ *
+ * 11 26 2018 lemon.xiong
+ * [MOLY00366340] P70 mini dumpÐÅÏ¢ÍÑÃô--- SCC
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.3  2004/09/28 15:34:49  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:22  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2  2003/08/28 11:33:30  bcolford
+ * Update for merge.
+ * Revision 1.3  2002/06/06 14:54:58  bsharma
+ * Updated Copyright info.
+ * Revision 1.2  2001/07/02 14:38:01  kmar
+ * Update SCC and SMS to CBP3 v360.
+ * Function prototype: mscGetProfile() in support for
+ * Alternative Service Options.
+ * Revision 1.1  2001/01/17 10:57:33  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:53  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:34Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.10  2000/03/06 19:22:01  bcassidy
+ * 1. Change mscIsBcastConfigured to mscIsBroadcastExpected.
+ *    [SCR 183].
+ * 2. Add mscIsBroadcastConfigured.
+ *    [SCR 181].
+ *
+ * Revision 1.9  2000/02/17 19:19:44  dfischer
+ * Added api to get state
+ *
+ * Revision 1.8  2000/02/15 17:41:16  ddoucett
+ * added sccSmsSetBroadcastParms and updated the RxInd callout
+ * removing the kal_bool broadcast parameter
+ *
+ * Revision 1.7  2000/02/01 23:21:14  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.6  1999/12/16 23:43:22  ddoucett
+ * added GetCurCfg
+ *
+ * Revision 1.5  1999/12/08 06:03:38  ddoucett
+ * Updated MSC, now uses the data burst controller for message passing
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_MSC_H
+#define _SCC_MSC_H      1
+
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_DBC.H"
+
+
+/***************************************************************************
+ *
+ * Function Name:      mscInit
+ *
+ * Description:      Initialize all static data
+ *
+ * Parameters:      None
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void mscInit(void);
+
+
+/***************************************************************************
+ *
+ * Function Name:    mscGetCurCfg
+ *
+ * Description:      Returns the Current configuration within MSC
+ *
+ * Parameters:       None
+ *
+ * Returns:          ServiceConfiguration*: pointer to the Current
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* mscGetCurCfg(void);
+
+/****************************************************************************
+ *
+ * Name:        mscIsBroadcastConfigured 
+ *
+ * Scope:       public
+ *
+ * Description: Determines if any SMS broadcast messages are configuted.
+ *              
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   kal_bool
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool mscIsBroadcastConfigured (void);
+
+/***************************************************************************
+ *
+ * Function Name:      mscIsBroadcastExpected
+ *
+ * Description:      Checks to see if the address parameter values
+ *                   are sufficient to allow the broadcast message to
+ *                   be delivered to the SMS engine
+ *
+ * Parameters:     kal_uint8 addrLen:  Length of addr data
+ *                 kal_uint8 *addr:  Pointer to the addr data
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_bool mscIsBroadcastExpected (kal_uint8 addrLen, kal_uint8* addr);
+
+/***************************************************************************
+ *
+ * Function Name:      mscSaveSmsCbsInfo
+ *
+ * Description:      save the CBS configuration
+ *
+ * Parameters:     PswSmsCbsInfoT* Msg, pointer to PswSmsCbsInfoT
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void mscSaveSmsCbsInfo (PswSmsCbsInfoT* Msg);
+
+/*
+ *      Message Delivery Functions
+ */
+/***************************************************************************
+ *
+ * Function Name:      mscDbcDataBurstInd
+ *
+ * Description:      Indication of an SMS Data Burst Message
+ *
+ * Parameters:      
+ *                  kal_uint8 *data:   Pointer to the message
+ *                  kal_uint8 length:  Length of the message            
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void mscDbcDataBurstInd(kal_uint8 *data, kal_uint8 length);
+
+/***************************************************************************
+ *
+ * Function Name:      mscDbcDeliverBCastMsg
+ *
+ * Description:      Indication of an SMS Broadcast Data Burst Message
+ *
+ * Parameters:     kal_uint8 addrLen:  Length of the BC_ADDR field
+ *                 kal_uint8 *addr:  Pointer to the BC_ADDR field
+ *                  kal_uint8 *data:   Pointer to the message
+ *                  kal_uint8 length:  Length of the message
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void mscDbcDeliverBCastMsg(kal_uint8 addrLen, kal_uint8 *addr,
+                     kal_uint8 length, kal_uint8 *data);
+
+/***************************************************************************
+ *
+ * Function Name:      mscDbcTxRsp
+ *
+ * Description:      Indication if the last sent SMS message was sucessfully
+ *                        delivered to the BS/MSC
+ *
+ * Parameters:      kal_bool success: Indication of success
+ *
+ * Returns:         None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void mscDbcTxRsp(kal_bool success, kal_bool resend);
+
+
+/*
+ *      Service Negotiation Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:      mscNegGetServCfgNoConnections
+ *
+ * Description:      Returns the Preferred Service Configuration given
+ *                   a valid service option number
+ *
+ * Parameters:         ServiceOption:  Valid Service Option
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid 
+ *                                           ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* mscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:		mscGetPrefServCfg
+ *
+ * Description:		Get preferred Service Configuration
+ *
+ * Parameters:			None
+ *
+ * Returns:				The preferred Service Configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* mscGetPrefServCfg(void); 
+
+/***************************************************************************
+ *
+ * Function Name:      mscNegServiceConfigurationInitiation
+ *
+ * Description:      Indication to SCC to begin the process of service
+ *                   configuration negotiation
+ *
+ * Parameters:         kal_uint8 rs:  Requested rate set of returned config
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid service 
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* mscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+
+/***************************************************************************
+ *
+ * Function Name:      mscNegServiceConfigurationValidation
+ *
+ * Description:      Validate the given service configuration and 
+ *                   propose an alternate if the given configuration
+ *                   is not supported and val is KAL_FALSE
+ *
+ * Parameters:         ServiceConfiguration *sc: Input -- pointer to a service 
+ *                                              configuration
+ *                                               Output -- alternate 
+ *                                                         configuration
+ *                   kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ *                      this routine will not propose an alternate 
+ *                      configuration if the given configuration is 
+ *                      not supported
+ *
+ * Returns:            SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse mscNegServiceConfigurationValidation(kal_bool val,
+                                ServiceConfiguration *sc);
+
+/***************************************************************************
+ *
+ * Function Name:      mscNegServiceOptionValidation
+ *
+ * Description:      Validate service option and propose alternate if 
+ *                   it is not supported
+ *
+ * Parameters:         ServiceOption *so: Input: Pointer to service option number
+ *                                              to be validated
+ *                                        Output: Alternative Service Option
+ *                     kal_bool paged: Indicates if this is because of a page
+ *
+ * Returns:            SCResponse:      Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse mscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+
+/****************************************************************************
+ *
+ * Name:        mscGetProfile 
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _Profiles.
+ *
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *mscGetProfile(void);
+
+/****************************************************************************
+ *
+ * Name:         cpcSMSALiveTimerExpired()
+ *
+ * Description:  Handler of SMS alive timer
+ *
+ * Parameters:   None
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void mscSMSALiveTimerExpired(void);
+
+/****************************************************************************
+ *
+ * Name:         mscSMSALiveTimerStart()
+ *
+ * Description:  Start SMS alive timer
+ *
+ * Parameters:   None
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void mscSMSALiveTimerStart(void);
+
+/****************************************************************************
+ *
+ * Name:         mscSMSALiveTimerStop()
+ *
+ * Description:  Start SMS alive timer
+ *
+ * Parameters:   None
+ *
+ * Returns:      None
+ *
+ * Notes:
+ *
+ *****************************************************************************/
+void mscSMSALiveTimerStop(void);
+
+/***************************************************************************
+ *
+ * Function Name:      xxxGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+#ifdef TEST
+kal_uint8 mscGetState(void);
+#endif
+
+void mscCpcInit( void );
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccMscSensitiveClean(void);
+#endif
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_NEG.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_NEG.H
new file mode 100644
index 0000000..38b917c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_NEG.H
@@ -0,0 +1,323 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:      scc_neg.c
+ * Project:       SCC
+ * Original Author:   Dan Doucette
+ * Creation Date:      Oct 27, 1999
+ *
+ * Description:      Declaration of Negotiator procedures
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: SCC_NEG.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ * Revision 1.2  2004/03/25 12:07:23  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:34  fpeng
+ * Initial revision
+ * Revision 1.6  2002/06/06 14:55:08  bsharma
+ * Updated Copyright info.
+ * Revision 1.5  2002/02/27 20:55:32  mclee
+ * SO 35/36 service Negotiation added
+ * Revision 1.4  2002/02/14 16:31:08  byang
+ * CR373: Add function prototype declaration for 
+ * sccFindServOptionAttribute().
+ * 
+ * Revision 1.3  2001/10/23 16:06:35  byang
+ * Added forward and reverse RC attribute to ServiceOptionAttributes
+ * data structure.
+ * Revision 1.2  2001/08/30 15:23:20  byang
+ * Added function prototype declaration for
+ * sccServConfigPRev6PlusValidation().
+ * Revision 1.1  2001/01/17 10:57:34  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:53  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:32Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.14  2000/03/11 00:48:34  bcassidy
+ * 1. Add negCpTcAssigned.
+ *
+ * Revision 1.13  2000/02/17 19:19:44  dfischer
+ * Added api to get state
+ *
+ * Revision 1.12  2000/02/01 23:21:14  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.11  1999/12/11 23:36:53  ddoucett
+ * fixed ServiceType variables from kal_uint8
+ *
+ * Revision 1.10  1999/12/10 22:42:27  ddoucett
+ * added negCpcSetCurType signal to set current type on an origination
+ *
+ * Revision 1.9  1999/12/08 06:03:38  ddoucett
+ * Redesign of negotiation procedures
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_NEG_H
+#define _SCC_NEG_H      1
+
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+#include "SCC_PSC.H"
+#include "SCC_LSC.H"
+#include "SCC_MSC.H"
+#include "SCC_DSC.H"
+#include "SCC_VSC.H"
+#include "SCC_OSC.H"
+#include "SCC_CSC.H"
+
+
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/* constants for Service Option Attributes */
+#define CP_MAX_MUX_OPTIONS          3
+#define CP_MAX_TRANS_RATES          4
+#define CP_MAX_TRAFFIC_TYPES        2
+#define CP_MAX_SCH_FOR_MUX_OPTIONS  17
+#define CP_MAX_SCH_REV_MUX_OPTIONS  17
+
+/*****************************************************************************
+ * Enumeration Definitions
+ ****************************************************************************/
+
+
+/*****************************************************************************
+ * Structure Definitions
+ ****************************************************************************/
+
+typedef struct
+{
+  kal_uint16            serviceOption;
+  MultiplexOption   forMuxOption[ CP_MAX_MUX_OPTIONS ];
+  MultiplexOption   revMuxOption[ CP_MAX_MUX_OPTIONS ];
+  TransmissionRates forFchTransRates;
+  TransmissionRates revFchTransRates;
+  TransmissionRates forDcchTransRates;
+  TransmissionRates revDcchTransRates;
+  TrafficType       forTrafficTypes[ CP_MAX_TRAFFIC_TYPES ];
+  TrafficType       revTrafficTypes[ CP_MAX_TRAFFIC_TYPES ];
+  ForRcType         forFchRcTypes;
+  RevRcType         revFchRcTypes;
+  ForRcType         forDcchRcTypes;
+  RevRcType         revDcchRcTypes;
+  ForRcType         forSchRcTypes;
+  RevRcType         revSchRcTypes;
+  ForSchMuxOptions  forSchMuxOption;
+  RevSchMuxOptions  revSchMuxOption;
+
+} ServiceOptionAttributes;
+
+
+/***************************************************************************
+ *
+ * Function Name:      negInit
+ *
+ * Description:      Initialize all static data
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negInit(void);
+
+/***************************************************************************
+ *
+ * Function Name:      negGetCurCfg
+ *
+ * Description:      Request to get the current configuration from the given
+ *                      service type
+ *
+ * Parameters:         kal_uint8 svcType:  Service type
+ *
+ * Returns:            ServiceConfiguration *cfg : Pointer to the configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* negGetCurCfg(kal_uint8 svcType);
+
+/***************************************************************************
+ *
+ * Function Name:      negCpcAddReq
+ *
+ * Description:      Request to add the given service type to the
+ *                      current configuration
+ *
+ * Parameters:         kal_uint8 type:  Service Type to add   
+ *                   kal_uint16 svcOpt:  Service option of service to add
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negCpcAddReq(kal_uint8 type, kal_uint16 svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:      negCpcRemoveReq
+ *
+ * Description:      Request to remove the given connection number from the
+ *                      current configuration
+ *
+ * Parameters:         kal_uint8 cn:  Service Configuration connection number
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negCpcRemoveReq(kal_uint8 cn);
+
+/***************************************************************************
+ *
+ * Function Name:      negCpcSwitchReq
+ *
+ * Description:      Request to change one service connection with the service
+ *                      option given
+ *
+ * Parameters:         kal_uint8 svcType:  Service type of new connection
+ *                   kal_uint16 svcOpt:  Service Option
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negCpcSwitchReq(kal_uint8 svcType, kal_uint16 svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:      negCpcSetCurType
+ *
+ * Description:      Allows CPC to set the current service type of an 
+ *                   originated call
+ *
+ * Parameters:         kal_uint8 type:  Type of call being originated
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negCpcSetCurType(SysServiceTypeT type);
+
+
+/****************************************************************************
+ *
+ * Name:        negCpTcAssigned 
+ *
+ * Scope:       public
+ *
+ * Description: Indication that a CDMA Traffic Channel has been assigned.
+ *              
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void negCpTcAssigned (void);
+
+
+/****************************************************************************
+ *
+ * Name:        sccServConfigPRev6PlusValidation 
+ *
+ * Scope:       public
+ *
+ * Description: 
+ *              
+ * Parameters:
+ *   void
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse sccServConfigPRev6PlusValidation
+(
+    const kal_bool                      validateOnly,
+    ServiceConfiguration*           pServCfg 
+);
+
+
+/****************************************************************************
+ *
+ * Name:        sccFindServOptionAttribute()
+ *
+ * Description: This function finds attempt to find a Service Option
+ *              attribute for the request Service Option.
+ *
+ * Parameters:  kal_uint16 - Service Option requested
+ *
+ * Returns:     
+ *
+ * Notes: 
+ *
+ ****************************************************************************/
+const ServiceOptionAttributes* sccFindServOptionAttribute
+(
+    const kal_uint16 servOption
+);
+
+#ifdef TEST
+kal_uint8 negGetState(void);
+#endif
+
+
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_OSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_OSC.H
new file mode 100644
index 0000000..88109b2
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_OSC.H
@@ -0,0 +1,407 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:			scc_osc.h
+ * Project: 			SCC
+ * Original Author:	Dan Doucette
+ * Creation Date:		Nov. 24, 1999
+ *
+ * Description:		Declaration of functions used for OTASP services
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_OSC_H
+#define _SCC_OSC_H		1
+
+/*
+ * 	Dependencies
+ */
+
+#include <string.h>
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+#include "SCC_DBC.H"
+
+
+
+/***************************************************************************
+ *
+ * Function Name:		oscInit
+ *
+ * Description:		Initialize static data within the OSC
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscInit(void);
+
+/***************************************************************************
+ *
+ * Function Name:    oscGetCurCfg
+ *
+ * Description:      Returns the Current configuration within OSC
+ *
+ * Parameters:       None
+ *
+ * Returns:          ServiceConfiguration*: pointer to the Current
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* oscGetCurCfg(void);
+
+
+
+/*
+ *		Message Delivery Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		oscDbcConnectInd
+ *
+ * Description:		Indication the OTASP service has been connected
+ *
+ * Parameters:		None
+ *
+ * Returns:			None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscDbcConnectInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:		oscDbcDataBurstInd
+ *
+ * Description:		Indication of an OTASP Data Burst Message
+ *
+ * Parameters:		kal_bool broadcast:  Indicates if the message was a broadcast
+ *						kal_uint8 *data:	Pointer to the message
+ *						kal_uint8 length:  Length of the message				
+ *
+ * Returns:			None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscDbcDataBurstInd(kal_uint8 *data, kal_uint8 length);
+
+/***************************************************************************
+ *
+ * Function Name:		oscDbcDisconnectInd
+ *
+ * Description:		Indication the OTASP service has been disconnected
+ *
+ * Parameters:		kal_uint8 reason: Reason for disconnection
+ *
+ * Returns:			None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscDbcDisconnectInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:		oscDbcTxRsp
+ *
+ * Description:		Indication if the last sent OTASP message was sucessfully
+ *								delivered to the BS/MSC
+ *
+ * Parameters:		kal_bool success: Indication of success
+ *
+ * Returns:			None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscDbcTxRsp(kal_bool success);
+
+/*
+ * 	Interface from CPC
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		oscCpcOrigInd
+ *
+ * Description:		Indication the user has requested an OTASP origination
+ *
+ * Parameters:			kal_uint8* digits:  Null terminated ascii digits
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscCpcOrigInd(kal_uint8* digits, kal_uint8 numDigits);
+
+
+/*
+ *		Service Negotiation Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegGetServCfgNoConnections
+ *
+ * Description:		Returns the Preferred Service Configuration given
+ * 						a valid service option number
+ *
+ * Parameters:			ServiceOption:  Valid Service Option
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid 
+ * 														ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* oscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegServiceConfigurationInd
+ *
+ * Description:		Indication to SCC to begin using the given service
+ * 						configuration
+ *
+ * Parameters:			ServiceConfiguration *: Pointer to a valid service 
+ * 						configuration
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscNegServiceConfigurationInd(ServiceConfiguration *cfg);
+
+/***************************************************************************
+ *
+ * Function Name:		oscGetPrefServCfg
+ *
+ * Description:		Get preferred Service Configuration
+ *
+ * Parameters:			None
+ *
+ * Returns:				The preferred Service Configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* oscGetPrefServCfg(void); 
+
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegServiceConfigurationInitiation
+ *
+ * Description:		Indication to SCC to begin the process of service
+ * 						configuration negotiation
+ *
+ * Parameters:			kal_uint8 rs:  Specific Rate set to return
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid service 
+ * 							configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* oscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegServiceConfigurationRsp
+ *
+ * Description:		Response from BS regarding previous service 
+ * 							configuration/option requests
+ *
+ * Parameters:			kal_uint8 resp:  Response code, see API document
+ * 						kal_uint8 req:	 Initial Request
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void oscNegServiceConfigurationRsp(kal_uint8 resp, kal_uint8 req);
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegServiceConfigurationValidation
+ *
+ * Description:		Validate the given service configuration and 
+ * 						propose an alternate if the given configuration
+ * 						is not supported and val is KAL_FALSE
+ *
+ * Parameters:			ServiceConfiguration *sc: Input -- pointer to a service 
+ * 															configuration
+ *															  Output -- alternate 
+ *																			configuration
+ * 						kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ * 							this routine will not propose an alternate 
+ * 							configuration if the given configuration is 
+ * 							not supported
+ *
+ * Returns:				SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse oscNegServiceConfigurationValidation(kal_bool valOnly,
+  										ServiceConfiguration *cfg);
+
+/***************************************************************************
+ *
+ * Function Name:		oscNegServiceOptionValidation
+ *
+ * Description:		Validate service option and propose alternate if 
+ * 						it is not supported
+ *
+ * Parameters:			ServiceOption *so: Input: Pointer to service option number
+ * 															to be validated
+ *													 Output: Alternative Service Option
+ *							kal_bool paged:  Indicates if this call is a result of a page
+ *
+ * Returns:				SCResponse:		Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse oscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+
+/****************************************************************************
+ *
+ * Name:        oscGetProfile 
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _Profiles.
+ *
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _Profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *oscGetProfile(void);
+
+
+/***************************************************************************
+ *
+ * Function Name:      xxxGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+#ifdef TEST
+kal_uint8 oscGetState(void);
+#endif
+void oscCpcInit( void );
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccOscSensitiveClean(void);
+#endif
+
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_PFL.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_PFL.H
new file mode 100644
index 0000000..5f3bf11
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_PFL.H
@@ -0,0 +1,2618 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:      scc_pfl.h   
+ * Project:       SCC
+ * Original Author:   Dan Doucette
+ * Creation Date:      Oct. 26, 1999
+ *
+ * Description:      Definition of Parameter Lists for SCC configuration
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+
+ * All rights reserved.
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.6 $
+ *
+ * $Log: SCC_PFL.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 12 01 2016 sue.zhong
+ * [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ * Update C2K source
+ * Revision 1.6  2005/03/18 13:53:45  blee
+ * 4.05 Merge
+ * Revision 1.5  2004/10/07 12:41:01  blee
+ * Added params to RLP blob
+ * Revision 1.4  2004/09/28 15:35:47  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.3  2004/04/23 10:51:53  asharma
+ * CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ * Revision 1.2.1.3  2004/04/21 15:41:58  asharma
+ * Revision 1.2.1.2  2004/04/19 16:27:00  asharma
+ * Revision 1.2.1.1  2004/03/25 12:07:24  asharma
+ * Duplicate revision
+ * Revision 1.2  2004/03/25 12:07:24  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:35  fpeng
+ * Initial revision
+ * Revision 1.16  2003/04/01 09:53:38  byang
+ * Modified all profiles that uses SCH to default to MUX_OPTION921.
+ * Revision 1.15  2003/03/12 16:23:12  byang
+ * CR #1763: Added profile for SO32858 and SO32859.
+ * Revision 1.14  2003/02/21 10:40:33  dstecker
+ * Corrected alternative service options for lsc
+ * Revision 1.13  2002/10/09 14:00:22  byang
+ * CR #1367 Corrected all RLP BLOB record information.
+ * Revision 1.12  2002/06/06 14:55:28  bsharma
+ * Updated Copyright info.
+ * Revision 1.11  2002/02/27 20:55:48  mclee
+ * SO35/36 profiles added
+ * Revision 1.10  2002/02/06 11:59:05  mclee
+ * Add Async and Fax profiles and counts
+ * Revision 1.9  2001/11/13 18:04:11  byang
+ * Updated all default SC with more strict data types.
+ * Revision 1.8  2001/10/29 09:05:44  mclee
+ * Changed ENABLED to SO_ENABLED and changed INIT_VAR from 1 to KAL_TRUE
+ * Revision 1.7  2001/10/23 16:07:18  byang
+ * Updated all service configuration to IS2000 format.
+ * Revision 1.6  2001/08/30 15:10:15  byang
+ * Added default Service Configuration for SO33.
+ * Revision 1.4  2001/08/06 13:38:39  akayvan
+ * Updated per so_54 addition.
+ * Revision 1.3  2001/07/02 14:46:24  kmar
+ * Update SCC and SMS to CBP3 v360.
+ * Changes up to v1.4 of CBP3.
+ * Revision 1.2  2001/05/25 11:47:35  yfang
+ * supported SO4 data call
+ * Revision 1.1  2001/01/17 10:57:36  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:54  fpeng
+ * Initial revision
+ * Revision 1.2  2000/08/24 00:11:29Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.9  2000/03/14 00:42:16  dfischer
+ * Changed hex 41xx to dec 41xx
+ *
+ * Revision 1.8  2000/02/07 17:19:47  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.7  2000/01/10 20:34:36  ddoucett
+ * fixed VSC_SO_COUNT adding SO_ANALOG
+ *
+ * Revision 1.6  2000/01/10 17:41:28  ddoucett
+ * added VSC analog voice profile
+ *
+ * Revision 1.5  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.4  1999/12/16 01:35:53  ddoucett
+ * removed HP_DATA_TEST compile define
+ *
+ * Revision 1.3  1999/12/09 19:20:12  ddoucett
+ * updated for HP_DATA_TEST flag
+ *
+ * Revision 1.2  1999/12/08 19:27:06  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.1  1999/12/08 06:03:38  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_PFL_H
+#define _SCC_PFL_H
+
+/* 
+ *    Dependencies
+ */
+#include "SCC_TUNE.H"
+
+/*
+ *    Mux Option Macros
+ */
+#define MAX_SUPP_CHANNELS \
+                  MAX(MAX_FOR_SUPP_CHANNELS,MAX_REV_SUPP_CHANNELS)
+
+#define MUX_OPTION_COUNT   (2+(2*MAX_SUPP_CHANNELS))
+
+#define RS1_RATES_ALL (RS1_9600|RS1_4800|RS1_2400|RS1_1200)
+#define RS2_RATES_ALL (RS2_14400|RS2_7200|RS2_3600|RS2_1800)
+
+#define MUX1      (MultiplexOption)1
+#define MUX2      (MultiplexOption)2
+#define MUX3      (MultiplexOption)3
+#define MUX4      (MultiplexOption)4
+#define MUX5      (MultiplexOption)5
+#define MUX6      (MultiplexOption)6
+#define MUX7      (MultiplexOption)7
+#define MUX8      (MultiplexOption)8   
+#define MUX9      (MultiplexOption)9
+#define MUX10      (MultiplexOption)10
+#define MUX11      (MultiplexOption)11
+#define MUX12      (MultiplexOption)12
+#define MUX13      (MultiplexOption)13
+#define MUX14      (MultiplexOption)14
+#define MUX15      (MultiplexOption)15
+#define MUX16      (MultiplexOption)16
+
+#define MAX_RS1_FOR_MUX_OPT (MultiplexOption)(1+(2*MAX_SUPP_CHANNELS))
+#define MAX_RS1_REV_MUX_OPT (MultiplexOption)1
+#define MAX_RS2_FOR_MUX_OPT (MultiplexOption)MUX_OPTION_COUNT
+#define MAX_RS2_REV_MUX_OPT (MultiplexOption)1
+
+#define PRIMARY_CHANNEL         (TrafficType)1
+#define SECONDARY_CHANNEL      (TrafficType)2
+
+
+/*
+ *    Voice Service Controller Configurations
+ */
+
+#define VSC_SO_COUNT (SO_01+SO_03+SO_17+SO_8000+SO_68+SO_73+SO_32944)
+
+#if (VSC_SO_COUNT > 0)
+   #define VSC_ENABLED
+#else
+ #error "At least one VOICE Service option must be enabled!"
+#endif
+
+#if (SO_01 == SO_ENABLED) 
+   /* QSELP MUX1 */
+   #define SO01_NEG_MODE  NEG_BOTH
+   #define SO01_INFO { 1, KAL_TRUE, KAL_TRUE, SO01_NEG_MODE}, 
+   #define VSC_01 \
+      { SO01_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,  \
+         {{ 0,                              /* CON_REF */                   \
+            1,                              /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,                /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,                /* REV_TRAFFIC */               \
+            0,                              /* UI_ENCRYPT_MODE */           \
+            1,                              /* SR_ID */                     \
+            KAL_FALSE,                          /* RLP_INFO_INCL */             \
+            5,                              /* RLP_BLOB_LEN */              \
+            { 1,                            /* RLP_BLOB_TYPE */             \
+              3,                            /* RLP_VERSION */               \
+              NULL_VAL,                     /* RTT Omitted */               \
+              KAL_TRUE,                         /* INIT_VAR */                  \
+              NULL_VAL,                     /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,                     /* MS_EXT_SEQ_M Omitted */      \
+              3,                            /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                            /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                            /* NAK_ROUND_FWD */             \
+              3,                            /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},                  /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },            /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                           /* FCH_CC_INCL */               \
+            0,                              /* FCH_FRAME_SIZE */            \
+            RC_3,                           /* FOR_FCH_RC */                \
+            RC_3,                           /* REV_FCH_RC */                \
+            KAL_FALSE,                          /* DCCH_CC_INCL */              \
+            1,                              /* DCCH_FRAME_SIZE */           \
+            RC_3,                           /* FOR_DCCH_RC */               \
+            RC_3,                           /* REV_DCCH_RC */               \
+            KAL_FALSE,                          /* FOR_SCH_CC_INCL */           \
+            1,                              /* NUM_FOR_SCH */               \
+        {{  0,                              /* FOR_SCH_ID */                \
+            MUX_OPTION3,                    /* FOR_SCH_MUX */               \
+            { 2,                            /* SCH_REC_LEN */               \
+              RC_3,                         /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},         /* CODING */                    \
+            KAL_FALSE,                          /* REV_SCH_CC_INCL */           \
+            1,                              /* NUM_REV_SCH */               \
+        {{  0,                              /* REV_SCH_ID */                \
+            MUX_OPTION3,                    /* REV_SCH_MUX */               \
+            { 2,                            /* SCH_REC_LEN */               \
+              RC_3,                          /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}        /* CODING */                    \
+        },
+#else
+   #define SO01_INFO
+   #define VSC_01
+#endif
+#if (SO_03 == SO_ENABLED)
+   /* EVRC MUX 1 */
+   #define SO03_NEG_MODE  NEG_BOTH
+   #define SO03_INFO { 3, KAL_TRUE, KAL_TRUE, SO03_NEG_MODE}, 
+   #define VSC_03 \
+      { SO03_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            3,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                   /* FCH_CC_INCL */               \
+            0,                      /* FCH_FRAME_SIZE */            \
+            RC_3,                   /* FOR_FCH_RC */                \
+            RC_3,                   /* REV_FCH_RC */                \
+            KAL_FALSE,                  /* DCCH_CC_INCL */              \
+            1,                      /* DCCH_FRAME_SIZE */           \
+            RC_3,                   /* FOR_DCCH_RC */               \
+            RC_3,                   /* REV_DCCH_RC */               \
+            KAL_FALSE,                  /* FOR_SCH_CC_INCL */           \
+            1,                      /* NUM_FOR_SCH */               \
+        {{  0,                      /* FOR_SCH_ID */                \
+            MUX_OPTION3,            /* FOR_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}, /* CODING */                    \
+            KAL_FALSE,                  /* REV_SCH_CC_INCL */           \
+            1,                      /* NUM_REV_SCH */               \
+        {{  0,                      /* REV_SCH_ID */                \
+            MUX_OPTION3,            /* REV_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}/* CODING */                    \
+        },
+#else
+   #define SO03_INFO
+   #define VSC_03
+#endif
+#if (SO_17 == SO_ENABLED)
+   /* QSELP MUX 2 */
+   #define SO17_NEG_MODE   NEG_BOTH
+   #define SO17_INFO { 17, KAL_TRUE, KAL_TRUE, SO17_NEG_MODE}, 
+   #define VSC_17 \
+      { SO17_NEG_MODE,   \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1, \
+         {{ 0,                          /* CON_REF */                   \
+            17,                         /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,            /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,            /* REV_TRAFFIC */               \
+            0,                          /* UI_ENCRYPT_MODE */           \
+            1,                          /* SR_ID */                     \
+            KAL_FALSE,                      /* RLP_INFO_INCL */             \
+            5,                          /* RLP_BLOB_LEN */              \
+            { 1,                        /* RLP_BLOB_TYPE */             \
+              3,                        /* RLP_VERSION */               \
+              NULL_VAL,                 /* RTT Omitted */               \
+              KAL_TRUE,                     /* INIT_VAR */                  \
+              NULL_VAL,                 /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,                 /* MS_EXT_SEQ_M Omitted */      \
+              3,                        /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                        /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                        /* NAK_ROUND_FWD */             \
+              3,                        /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},              /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },        /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO17_INFO
+   #define VSC_17
+#endif
+#if (SO_8000 == SO_ENABLED)
+   /* QSELP MUX 2 */
+   #define SO8000_NEG_MODE   NEG_BOTH
+   #define SO8000_INFO { 0x8000, KAL_TRUE, KAL_TRUE, SO8000_NEG_MODE}, 
+   #define VSC_8000 \
+      { SO8000_NEG_MODE,   \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1, \
+         {{ 0,                          /* CON_REF */                   \
+            0x8000,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,            /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,            /* REV_TRAFFIC */               \
+            0,                          /* UI_ENCRYPT_MODE */           \
+            1,                          /* SR_ID */                     \
+            KAL_FALSE,                      /* RLP_INFO_INCL */             \
+            5,                          /* RLP_BLOB_LEN */              \
+            { 1,                        /* RLP_BLOB_TYPE */             \
+              3,                        /* RLP_VERSION */               \
+              NULL_VAL,                 /* RTT Omitted */               \
+              KAL_TRUE,                     /* INIT_VAR */                  \
+              NULL_VAL,                 /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,                 /* MS_EXT_SEQ_M Omitted */      \
+              3,                        /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                        /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                        /* NAK_ROUND_FWD */             \
+              3,                        /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},              /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },        /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO8000_INFO
+   #define VSC_8000
+#endif
+
+#if (SO_68 == SO_ENABLED)
+   /* EVRC B MUX 1 */
+   #define SO68_NEG_MODE   NEG_BOTH
+   #define SO68_INFO { 68, KAL_TRUE, KAL_TRUE, SO68_NEG_MODE}, 
+   #define VSC_68 \
+      { SO68_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            68,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                   /* FCH_CC_INCL */               \
+            0,                      /* FCH_FRAME_SIZE */            \
+            RC_3,                   /* FOR_FCH_RC */                \
+            RC_3,                   /* REV_FCH_RC */                \
+            KAL_FALSE,                  /* DCCH_CC_INCL */              \
+            1,                      /* DCCH_FRAME_SIZE */           \
+            RC_3,                   /* FOR_DCCH_RC */               \
+            RC_3,                   /* REV_DCCH_RC */               \
+            KAL_FALSE,                  /* FOR_SCH_CC_INCL */           \
+            1,                      /* NUM_FOR_SCH */               \
+        {{  0,                      /* FOR_SCH_ID */                \
+            MUX_OPTION3,            /* FOR_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}, /* CODING */                    \
+            KAL_FALSE,                  /* REV_SCH_CC_INCL */           \
+            1,                      /* NUM_REV_SCH */               \
+        {{  0,                      /* REV_SCH_ID */                \
+            MUX_OPTION3,            /* REV_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}/* CODING */                    \
+        },
+#else
+   #define SO68_INFO
+   #define VSC_68
+#endif
+
+#if (SO_73 == SO_ENABLED)
+   /* EVRC NW MUX 1 */
+   #define SO73_NEG_MODE   NEG_BOTH
+   #define SO73_INFO { 73, KAL_TRUE, KAL_TRUE, SO73_NEG_MODE}, 
+   #define VSC_73 \
+      { SO73_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            73,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                   /* FCH_CC_INCL */               \
+            0,                      /* FCH_FRAME_SIZE */            \
+            RC_3,                   /* FOR_FCH_RC */                \
+            RC_3,                   /* REV_FCH_RC */                \
+            KAL_FALSE,                  /* DCCH_CC_INCL */              \
+            1,                      /* DCCH_FRAME_SIZE */           \
+            RC_3,                   /* FOR_DCCH_RC */               \
+            RC_3,                   /* REV_DCCH_RC */               \
+            KAL_FALSE,                  /* FOR_SCH_CC_INCL */           \
+            1,                      /* NUM_FOR_SCH */               \
+        {{  0,                      /* FOR_SCH_ID */                \
+            MUX_OPTION3,            /* FOR_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}, /* CODING */                    \
+            KAL_FALSE,                  /* REV_SCH_CC_INCL */           \
+            1,                      /* NUM_REV_SCH */               \
+        {{  0,                      /* REV_SCH_ID */                \
+            MUX_OPTION3,            /* REV_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}/* CODING */                    \
+        },
+#else
+   #define SO73_INFO
+   #define VSC_73
+#endif
+
+#if (SO_32944 == SO_ENABLED)
+   /* EVRC MUX 1 */
+   #define SO32944_NEG_MODE  NEG_BOTH
+   #define SO32944_INFO { 32944, KAL_TRUE, KAL_TRUE, SO32944_NEG_MODE}, 
+   #define VSC_32944 \
+      { SO32944_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            32944,                  /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                   /* FCH_CC_INCL */               \
+            0,                      /* FCH_FRAME_SIZE */            \
+            RC_3,                   /* FOR_FCH_RC */                \
+            RC_3,                   /* REV_FCH_RC */                \
+            KAL_FALSE,                  /* DCCH_CC_INCL */              \
+            1,                      /* DCCH_FRAME_SIZE */           \
+            RC_3,                   /* FOR_DCCH_RC */               \
+            RC_3,                   /* REV_DCCH_RC */               \
+            KAL_FALSE,                  /* FOR_SCH_CC_INCL */           \
+            1,                      /* NUM_FOR_SCH */               \
+        {{  0,                      /* FOR_SCH_ID */                \
+            MUX_OPTION3,            /* FOR_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}, /* CODING */                    \
+            KAL_FALSE,                  /* REV_SCH_CC_INCL */           \
+            1,                      /* NUM_REV_SCH */               \
+        {{  0,                      /* REV_SCH_ID */                \
+            MUX_OPTION3,            /* REV_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}/* CODING */                    \
+        },
+#else
+   #define SO32944_INFO
+   #define VSC_32944
+#endif
+
+/* order the list from most preferred SO to least preferred SO */
+/* From C.S0099:
+   When P_REV_IN_USE is 6 the mobile station will include the following voice service
+   options in the ORM and PRM:
+   a) When MAX_NUM_ALT_SO advertized value is 0, SO will be set to 3.
+   b) When MAX_NUM_ALT_SO advertized value is 1, SO will be set to 3 and ALT_SO
+      will be set to SO 68.
+   c) When MAX_NUM_ALT_SO advertized value is 2, SO will be set to 3 and ALT_SO
+      will include SO 68 and SO 73.
+*/
+#define VSC_SO_CFG_LIST {VSC_68 VSC_73  VSC_03 VSC_17 VSC_8000 VSC_01 VSC_32944 }
+/*
+ *    Packet Data Configurations
+ */
+#define PSC_SO_COUNT (SO_07+SO_4103+SO_15+SO_22+SO_23+SO_24+SO_25+SO_33+SO_805A+SO_805B)
+#if (PSC_SO_COUNT > 0)
+   #define PSC_ENABLED
+#endif
+
+#if (SO_07 == SO_ENABLED)
+   /* LSD IP MUX 1 */
+   #define SO07_NEG_MODE   NEG_BOTH
+   #define SO07_INFO { 7, KAL_TRUE, KAL_TRUE, SO07_NEG_MODE}, 
+   #define PSC_07   \
+      { SO07_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                          /* CON_REF */                   \
+            7,                          /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,            /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,            /* REV_TRAFFIC */               \
+            0,                          /* UI_ENCRYPT_MODE */           \
+            1,                          /* SR_ID */                     \
+            KAL_TRUE,                       /* RLP_INFO_INCL */             \
+            5,                          /* RLP_BLOB_LEN */              \
+            { 1,                        /* RLP_BLOB_TYPE */             \
+              3,                        /* RLP_VERSION */               \
+              NULL_VAL,                 /* RTT Omitted */               \
+              KAL_TRUE,                     /* INIT_VAR */                  \
+              NULL_VAL,                 /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,                 /* MS_EXT_SEQ_M Omitted */      \
+              3,                        /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                        /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                        /* NAK_ROUND_FWD */             \
+              3,                        /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},              /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },        /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO07_INFO
+   #define PSC_07
+#endif
+#if (SO_4103 == SO_ENABLED)
+   /* LSD IP MUX 1 */
+   #define SO4103_NEG_MODE   NEG_BOTH
+   #define SO4103_INFO { 4103, KAL_TRUE, KAL_TRUE, SO4103_NEG_MODE}, 
+   #define PSC_4103   \
+      { SO4103_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            4103,                   /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                   /* FCH_CC_INCL */               \
+            0,                      /* FCH_FRAME_SIZE */            \
+            RC_3,                   /* FOR_FCH_RC */                \
+            RC_3,                   /* REV_FCH_RC */                \
+            KAL_FALSE,                  /* DCCH_CC_INCL */              \
+            1,                      /* DCCH_FRAME_SIZE */           \
+            RC_3,                   /* FOR_DCCH_RC */               \
+            RC_3,                   /* REV_DCCH_RC */               \
+            KAL_FALSE,                  /* FOR_SCH_CC_INCL */           \
+            1,                      /* NUM_FOR_SCH */               \
+        {{  0,                      /* FOR_SCH_ID */                \
+            MUX_OPTION3,            /* FOR_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}, /* CODING */                    \
+            KAL_FALSE,                  /* REV_SCH_CC_INCL */           \
+            1,                      /* NUM_REV_SCH */               \
+        {{  0,                      /* REV_SCH_ID */                \
+            MUX_OPTION3,            /* REV_SCH_MUX */               \
+            { 2,                    /* SCH_REC_LEN */               \
+              RC_3,                 /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}/* CODING */                    \
+        },
+#else
+   #define SO4103_INFO
+   #define PSC_4103
+#endif
+#if (SO_15 == SO_ENABLED)
+   /* LSD IP MUX 2 */
+   #define SO15_NEG_MODE   NEG_SN
+   #define SO15_INFO { 15, KAL_TRUE, KAL_TRUE, SO15_NEG_MODE}, 
+   #define PSC_15   \
+      { SO15_NEG_MODE,   \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1, \
+         {{ 0,                      /* CON_REF */                   \
+            15,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO15_INFO
+   #define PSC_15
+#endif
+#if (SO_22 == SO_ENABLED)
+   /* HSD IP RS 1 */
+   #define SO22_NEG_MODE   NEG_SN
+   #define SO22_INFO { 22, KAL_TRUE, KAL_TRUE, SO22_NEG_MODE}, 
+   #define PSC_22   \
+      { SO22_NEG_MODE,   \
+      { MAX_RS1_FOR_MUX_OPT, MAX_RS1_REV_MUX_OPT,               \
+        RS1_RATES_ALL,       RS1_RATES_ALL,                     \
+            1,                  /* NUM_CON_REC */               \
+         {{ 0,                  /* CON_REF */                   \
+            22,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_TRUE,               /* RLP_INFO_INCL */             \
+            5,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO22_INFO
+   #define PSC_22
+#endif
+#if (SO_23 == SO_ENABLED)
+   /* HSD IP RS 1-2 SPLIT */
+   #define SO23_NEG_MODE  NEG_SN
+   #define SO23_INFO { 23, KAL_TRUE, KAL_TRUE, SO23_NEG_MODE}, 
+   #define PSC_23   \
+      { SO23_NEG_MODE,   \
+      { MAX_RS1_FOR_MUX_OPT, MAX_RS2_REV_MUX_OPT,               \
+        RS1_RATES_ALL,       RS2_RATES_ALL,                     \
+            1,                      /* NUM_CON_REC */               \
+         {{ 0,                      /* CON_REF */                   \
+            23,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO23_INFO
+   #define PSC_23
+#endif
+#if (SO_24 == SO_ENABLED)
+   /* HSD IP RS 2-1 SPLIT */
+   #define SO24_NEG_MODE  NEG_SN
+   #define SO24_INFO { 24, KAL_TRUE, KAL_TRUE, SO24_NEG_MODE}, 
+   #define PSC_24   \
+      { SO24_NEG_MODE,   \
+      { MAX_RS2_FOR_MUX_OPT, MAX_RS1_REV_MUX_OPT,               \
+        RS2_RATES_ALL,       RS1_RATES_ALL,                     \
+            1,                      /* NUM_CON_REC */               \
+         {{ 0,                      /* CON_REF */                   \
+            24,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO24_INFO
+   #define PSC_24
+#endif
+#if (SO_25 == SO_ENABLED)
+   /* HSD IP RS 2 */
+   #define SO25_NEG_MODE   NEG_SN
+   #define SO25_INFO { 25, KAL_TRUE, KAL_TRUE, SO25_NEG_MODE}, 
+   #define PSC_25                                                  \
+      { SO25_NEG_MODE,                                                 \
+      { MAX_RS2_FOR_MUX_OPT, MAX_RS2_REV_MUX_OPT,               \
+        RS2_RATES_ALL,       RS2_RATES_ALL,                     \
+            1,                      /* NUM_CON_REC */               \
+         {{ 0,                      /* CON_REF */                   \
+            25,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO25_INFO
+   #define PSC_25
+#endif
+
+#if (SO_33 == SO_ENABLED)
+   #define SO33_NEG_MODE   NEG_SN
+   #define SO33_INFO { 33, KAL_TRUE, KAL_TRUE, SO33_NEG_MODE}, 
+   #define PSC_33                                                  \
+      { SO33_NEG_MODE,                                                 \
+      { MUX1,          MUX1,                                    \
+        RS1_RATES_ALL, RS1_RATES_ALL,                           \
+            1,                  /* NUM_CON_REC */               \
+         {{ 0,                  /* CON_REF */                   \
+            33,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_TRUE,               /* RLP_INFO_INCL */             \
+            7,                  /* RLP_BLOB_LEN */              \
+            { 1,                /* RLP_BLOB_TYPE */             \
+              3,                /* RLP_VERSION */               \
+              NULL_VAL,         /* RTT Omitted */               \
+              KAL_TRUE,             /* INIT_VAR */                  \
+              NULL_VAL,         /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,         /* MS_EXT_SEQ_M Omitted */      \
+              3,                /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                /* NAK_ROUND_FWD */             \
+              3,                /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},      /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3,},  /* NAK_PER_ROUND_REV */         \
+               3,              /* DELAY_DETECTION_WIN */        \
+               8,              /* REXMIT_TIMER */               \
+             },                                                 \
+              KAL_FALSE, }},        /* QOS_INCL */                  \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_TRUE,                       /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_TRUE,                       /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION921,              /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}},                   /* maxRate */                   \
+            KAL_TRUE,                       /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION921,              /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}},                   /* maxRate */                   \
+            0,                          /* fchDcchMuxOptionInd */       \
+            0,                          /* forDcchMuxOption */          \
+            0,                          /* revDcchMuxOption */          \
+            KAL_TRUE,                       /* forPdchCcIncl */             \
+            MUX_OPTIONF00,              /* F-PDCH Mux Option */         \
+            RC_10, }                    /* F-PDCH RC */                 \
+        },
+#else
+   #define SO33_INFO
+   #define PSC_33
+#endif
+
+#if (SO_805A == SO_ENABLED)
+   #define SO805A_NEG_MODE   NEG_SN
+   #define SO805A_INFO { 0x805A, KAL_TRUE, KAL_TRUE, SO805A_NEG_MODE}, 
+   #define PSC_805A                                                  \
+      { SO805A_NEG_MODE,                                                 \
+      { MUX1,          MUX1,                                    \
+        RS1_RATES_ALL, RS1_RATES_ALL,                           \
+            1,                  /* NUM_CON_REC */               \
+         {{ 0,                  /* CON_REF */                   \
+            32858,              /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_TRUE,               /* RLP_INFO_INCL */             \
+            5,                  /* RLP_BLOB_LEN */              \
+            { 1,                /* RLP_BLOB_TYPE */             \
+              3,                /* RLP_VERSION */               \
+              NULL_VAL,         /* RTT Omitted */               \
+              KAL_TRUE,             /* INIT_VAR */                  \
+              NULL_VAL,         /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,         /* MS_EXT_SEQ_M Omitted */      \
+              3,                /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                /* NAK_ROUND_FWD */             \
+              3,                /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},      /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },/* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_TRUE,                       /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_TRUE,                       /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION921,              /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}},                   /* maxRate */                   \
+            KAL_TRUE,                       /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION921,              /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}}}                   /* maxRate */                   \
+        },
+#else
+   #define SO805A_INFO
+   #define PSC_805A
+#endif
+
+#if (SO_805B == SO_ENABLED)
+   #define SO805B_NEG_MODE   NEG_SN
+   #define SO805B_INFO { 0x805B, KAL_TRUE, KAL_TRUE, SO805B_NEG_MODE}, 
+   #define PSC_805B                                                  \
+      { SO805B_NEG_MODE,                                                 \
+      { MUX1,          MUX1,                                    \
+        RS1_RATES_ALL, RS1_RATES_ALL,                           \
+            1,                  /* NUM_CON_REC */               \
+         {{ 0,                  /* CON_REF */                   \
+            32859,              /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_TRUE,               /* RLP_INFO_INCL */             \
+            5,                  /* RLP_BLOB_LEN */              \
+            { 1,                /* RLP_BLOB_TYPE */             \
+              3,                /* RLP_VERSION */               \
+              NULL_VAL,         /* RTT Omitted */               \
+              KAL_TRUE,             /* INIT_VAR */                  \
+              NULL_VAL,         /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,         /* MS_EXT_SEQ_M Omitted */      \
+              3,                /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                /* NAK_ROUND_FWD */             \
+              3,                /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},      /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },/* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_TRUE,                       /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_TRUE,                       /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION921,              /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}},                   /* maxRate */                   \
+            KAL_TRUE,                       /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION921,              /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}}}                   /* maxRate */                   \
+        },
+#else
+   #define SO805B_INFO
+   #define PSC_805B
+#endif
+
+
+#define PSC_SO_CFG_LIST { PSC_33 PSC_25 PSC_24 PSC_23 PSC_22 PSC_15 PSC_4103 \
+                           PSC_07 PSC_805A PSC_805B }
+
+
+/*
+ *    Async Data Configurations
+ */
+
+/* Distinguish Fax from Async. Used for Alt_SO in Orig & Page Rsp */
+#define DSC_ASYNC_SO_COUNT (SO_04+SO_12+SO_4100)
+#define DSC_FAX_SO_COUNT (SO_05+SO_13+SO_4101)
+#define DSC_SO_COUNT (DSC_ASYNC_SO_COUNT+DSC_FAX_SO_COUNT)
+
+#if (DSC_SO_COUNT > 0)
+   #define DSC_ENABLED
+#endif
+
+/* Japanese Data Modification */
+#ifdef JAPANESE_DATA
+   #define NEG_MODE_SUPPORTED   NEG_BOTH
+#else
+   #define NEG_MODE_SUPPORTED NEG_SON
+#endif
+
+#if (SO_04 == SO_ENABLED) 
+   /* ASYNC MUX1 */
+   #define SO04_NEG_MODE  NEG_BOTH
+   #define SO04_INFO { 4, KAL_TRUE, KAL_TRUE, SO04_NEG_MODE}, 
+   #define DSC_04 \
+      { SO04_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            4,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO04_INFO
+   #define DSC_04
+#endif
+#if (SO_05 == SO_ENABLED) 
+   /* FAX MUX1 */
+   #define SO05_NEG_MODE   NEG_BOTH
+   #define SO05_INFO { 5, KAL_TRUE, KAL_TRUE, SO05_NEG_MODE}, 
+   #define DSC_05 \
+      { SO05_NEG_MODE,   \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            5,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO05_INFO
+   #define DSC_05
+#endif
+#if (SO_4100 == SO_ENABLED) 
+   /* ASYNC MUX1 */
+   #define SO4100_NEG_MODE   NEG_BOTH
+   #define SO4100_INFO { 4100, KAL_TRUE, KAL_TRUE, SO4100_NEG_MODE}, 
+   #define DSC_4100                                                \
+      { SO4100_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            4100,                   /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO4100_INFO
+   #define DSC_4100
+#endif
+#if (SO_12 == SO_ENABLED) 
+   /* ASYNC MUX2 */
+   #define SO12_NEG_MODE   NEG_SN
+   #define SO12_INFO { 12, KAL_TRUE, KAL_TRUE, SO12_NEG_MODE}, 
+   #define DSC_12                                                  \
+      { SO12_NEG_MODE,                                                 \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            12,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO12_INFO
+   #define DSC_12
+#endif
+#if (SO_4101 == SO_ENABLED) 
+   /* FAX MUX1 */
+   #define SO4101_NEG_MODE   NEG_BOTH
+   #define SO4101_INFO { 4101, KAL_TRUE, KAL_TRUE, SO4101_NEG_MODE}, 
+   #define DSC_4101                                                \
+      { SO4101_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            4101,                   /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO4101_INFO
+   #define DSC_4101
+#endif
+#if (SO_13 == SO_ENABLED) 
+   /* FAX MUX2 */
+   #define SO13_NEG_MODE   NEG_SN
+   #define SO13_INFO { 13, KAL_TRUE, KAL_TRUE, SO13_NEG_MODE}, 
+   #define DSC_13                                                  \
+      { SO13_NEG_MODE,                                                 \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            13,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO13_INFO
+   #define DSC_13
+#endif
+#define DSC_SO_CFG_LIST { DSC_04 DSC_05 DSC_12 \
+                          DSC_13 DSC_4100 DSC_4101 }
+
+/* Distinguish between Async and Fax SO groups.
+ * Used for Alt_SO in Orig and Page Rsp. */
+#define DSC_ASYNC_SO_CFG_LIST { DSC_04 DSC_12 DSC_4100 }
+#define DSC_FAX_SO_CFG_LIST   { DSC_05 DSC_13 DSC_4101 }
+
+
+/*
+ *    Loopback Service Configurations
+ */
+#define LSC_SO_COUNT (SO_02+SO_09+SO_30+SO_31+SO_32+SO_54+SO_55+SO_75+SO_8002+SO_801E+SO_801F)
+/* Distinguish Markov from Loopback Used for Alt_SO in Orig & Page Rsp */
+#define LSC_MARKOV_SO_COUNT (SO_54+SO_8002+SO_801E+SO_801F)
+#define LSC_LPBK_SO_COUNT (SO_02+SO_09+SO_55+SO_75)
+
+#if (LSC_SO_COUNT > 0)
+   #define LSC_ENABLED
+#else
+ #error "At least one LOOPBACK Service option must be enabled!"
+#endif
+
+#if (SO_02 == SO_ENABLED) 
+   /* LOOPBACK MUX1 */
+   #define SO02_NEG_MODE   NEG_BOTH
+   #define SO02_INFO { 2, KAL_TRUE, KAL_TRUE, SO02_NEG_MODE}, 
+   #define LSC_02                                                  \
+      { SO02_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            2,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO02_INFO
+   #define LSC_02
+#endif
+#if (SO_09 == SO_ENABLED) 
+   /* LOOPBACK MUX2 */
+   #define SO09_NEG_MODE    NEG_BOTH
+   #define SO09_INFO { 9, KAL_TRUE, KAL_TRUE, SO09_NEG_MODE}, 
+   #define LSC_09                                                  \
+      { SO09_NEG_MODE,                                               \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            9,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO09_INFO
+   #define LSC_09
+#endif
+#if (SO_30 == SO_ENABLED) 
+   /* SUPP CHAN LOOPBACK MUX1 */
+   #define SO30_NEG_MODE   NEG_SN
+   #define SO30_INFO { 30, KAL_TRUE, KAL_TRUE, SO30_NEG_MODE}, 
+   #define LSC_30                                                  \
+      { SO30_NEG_MODE,                                                 \
+      { MUX_OPTION3, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,     \
+         {{ 0,                      /* CON_REF */                   \
+            30,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO30_INFO
+   #define LSC_30
+#endif
+#if (SO_31 == SO_ENABLED) 
+   /* SUPP CHAN LOOPBACK MUX2 */
+   #define SO31_NEG_MODE   NEG_SN
+   #define SO31_INFO { 31, KAL_TRUE, KAL_TRUE, SO31_NEG_MODE}, 
+   #define LSC_31 \
+      { SO31_NEG_MODE,   \
+      { MUX_OPTION4, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1, \
+         {{ 0,                  /* CON_REF */                   \
+            31,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_FALSE,              /* RLP_INFO_INCL */             \
+            0,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO31_INFO
+   #define LSC_31
+#endif
+
+#if (SO_8002 == SO_ENABLED) 
+   /* MARKOV MUX1 */
+   #define SO8002_NEG_MODE  NEG_BOTH
+   #define SO8002_INFO { 0x8002, KAL_TRUE, KAL_TRUE, SO8002_NEG_MODE}, 
+   #define LSC_8002                                                \
+      { SO8002_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                  /* CON_REF */                   \
+            0x8002,             /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_FALSE,              /* RLP_INFO_INCL */             \
+            0,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_1,                       /* FOR_FCH_RC */                \
+            RC_1,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_1,                       /* FOR_DCCH_RC */               \
+            RC_1,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO8002_INFO
+   #define LSC_8002
+#endif
+
+#if (SO_801E == SO_ENABLED) 
+   /* MARKOV MUX1 */
+   #define SO801E_NEG_MODE   NEG_BOTH
+   #define SO801E_INFO { 0x801E, KAL_TRUE, KAL_TRUE, SO801E_NEG_MODE}, 
+   #define LSC_801E                                                \
+      { SO801E_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                  /* CON_REF */                   \
+            0x801E,             /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_FALSE,              /* RLP_INFO_INCL */             \
+            0,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO801E_INFO
+   #define LSC_801E
+#endif
+
+#if (SO_32 == SO_ENABLED) 
+   #define SO32_NEG_MODE   NEG_SN
+   #define SO32_INFO { 32, KAL_TRUE, KAL_TRUE, SO32_NEG_MODE}, 
+   #define LSC_32                                                  \
+      { SO32_NEG_MODE,                                                 \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                  /* CON_REF */                   \
+            32,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_FALSE,              /* RLP_INFO_INCL */             \
+            5,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_TRUE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_TRUE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION921,              /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}},                   /* maxRate */                   \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION921,              /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING,          /* CODING */                    \
+              0,                        /* frame40Used */               \
+              0,                        /* frame80Used */               \
+              4, }}}}                   /* maxRate */                   \
+        },
+#else 
+   #define SO32_INFO
+   #define LSC_32
+#endif
+
+#if (SO_55 == SO_ENABLED) 
+   #define SO55_NEG_MODE   NEG_BOTH
+   #define SO55_INFO { 55, KAL_TRUE, KAL_TRUE, SO55_NEG_MODE}, 
+   #define LSC_55                                                  \
+      { SO55_NEG_MODE,                                                 \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            55,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO55_INFO
+   #define LSC_55
+#endif
+
+#if (SO_75 == SO_ENABLED) 
+   #define SO75_NEG_MODE   NEG_BOTH
+   #define SO75_INFO { 75, KAL_TRUE, KAL_TRUE, SO75_NEG_MODE},
+   #define LSC_75                                                  \
+      { SO75_NEG_MODE,                                                 \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            75,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_11,                     /* FOR_FCH_RC */                \
+            RC_8,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO75_INFO
+   #define LSC_75
+#endif
+
+#if (SO_801F == SO_ENABLED) 
+   /* MARKOV MUX2 */
+   #define SO801F_NEG_MODE   NEG_BOTH
+   #define SO801F_INFO { 0x801F, KAL_TRUE, KAL_TRUE, SO801F_NEG_MODE}, 
+   #define LSC_801F                                                \
+      { SO801F_NEG_MODE,                                               \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            0x801F,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO801F_INFO
+   #define LSC_801F
+#endif
+
+#if (SO_54 == SO_ENABLED) 
+   /* LOOPBACK MUX1 */
+   #define SO54_NEG_MODE   NEG_BOTH
+   #define SO54_INFO { 54, KAL_TRUE, KAL_TRUE, SO54_NEG_MODE}, 
+   #define LSC_54                                                  \
+      { SO54_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            54,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_FALSE,                  /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else 
+   #define SO54_INFO
+   #define LSC_54
+#endif
+
+#define LSC_SO_CFG_LIST { LSC_02 LSC_09 LSC_30 LSC_31 LSC_32 LSC_54 \
+                          LSC_55 LSC_75 LSC_8002 LSC_801E LSC_801F}
+#define LSC_MARKOV_SO_CFG_LIST { LSC_54 LSC_8002 LSC_801E LSC_801F}
+#define LSC_LPBK_SO_CFG_LIST { LSC_02 LSC_09 LSC_55 LSC_75 }
+
+/*
+ *    SMS Service Configurations
+ */
+#define MSC_SO_COUNT (SO_06+SO_14)
+#if (MSC_SO_COUNT > 0)
+   #define MSC_ENABLED
+#endif
+
+#if (SO_06 == SO_ENABLED) 
+   /* SMS MUX1 */
+   #define SO06_NEG_MODE    NEG_BOTH
+   #define SO06_INFO { 6, KAL_TRUE, KAL_TRUE, SO06_NEG_MODE}, 
+   #define MSC_06                                                  \
+      { SO06_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            6,                      /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO06_INFO
+   #define MSC_06
+#endif
+#if (SO_14 == SO_ENABLED) 
+   /* SMS MUX2 */
+   #define SO14_NEG_MODE   NEG_BOTH
+   #define SO14_INFO { 14, KAL_TRUE, KAL_TRUE, SO14_NEG_MODE}, 
+   #define MSC_14                                                  \
+      { SO14_NEG_MODE,                                               \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                  /* CON_REF */                   \
+            14,                 /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,    /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,    /* REV_TRAFFIC */               \
+            0,                  /* UI_ENCRYPT_MODE */           \
+            1,                  /* SR_ID */                     \
+            KAL_TRUE,               /* RLP_INFO_INCL */             \
+            5,                  /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO14_INFO
+   #define MSC_14
+#endif
+#define MSC_SO_CFG_LIST { MSC_06 MSC_14 }
+
+
+/*
+ *    OTASP Service Configurations
+ */
+#define OSC_SO_COUNT (SO_18+SO_19)
+#if (OSC_SO_COUNT > 0)
+   #define OSC_ENABLED
+#endif
+
+#if (SO_18 == SO_ENABLED) 
+   /* OTASP MUX1 */
+   #define SO18_NEG_MODE   NEG_BOTH
+   #define SO18_INFO { 18, KAL_TRUE, KAL_TRUE, SO18_NEG_MODE}, 
+   #define OSC_18                                                  \
+      { SO18_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            18,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO18_INFO
+   #define OSC_18
+#endif
+#if (SO_19 == SO_ENABLED) 
+   /* OTASP MUX2 */
+   #define SO19_NEG_MODE   NEG_SN
+   #define SO19_INFO { 19, KAL_TRUE, KAL_TRUE, SO19_NEG_MODE}, 
+   #define OSC_19                                                  \
+      { SO19_NEG_MODE,                                                 \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            19,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO19_INFO
+   #define OSC_19
+#endif
+#define OSC_SO_CFG_LIST { OSC_18 OSC_19 }
+
+/*
+ *    Location Service Configurations
+ */
+#define CSC_SO_COUNT (SO_35+SO_36)
+#if (CSC_SO_COUNT > 0)
+   #define CSC_ENABLED
+#endif
+
+#if (SO_35 == SO_ENABLED) 
+   /* Location MUX1 */
+   #define SO35_NEG_MODE   NEG_BOTH
+   #define SO35_INFO { 35, KAL_TRUE, KAL_TRUE, SO35_NEG_MODE}, 
+   #define CSC_35                                                  \
+      { SO35_NEG_MODE,                                               \
+      { MUX1, MUX1, RS1_RATES_ALL, RS1_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            35,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_3,                       /* FOR_FCH_RC */                \
+            RC_3,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_3,                       /* FOR_DCCH_RC */               \
+            RC_3,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION3,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION3,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_3,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO35_INFO
+   #define CSC_35 
+#endif
+#if (SO_36 == SO_ENABLED) 
+   /* Location Services MUX2 */
+   #define SO36_NEG_MODE   NEG_BOTH 
+   #define SO36_INFO { 36, KAL_TRUE, KAL_TRUE, SO36_NEG_MODE}, 
+   #define CSC_36                                                  \
+      { SO36_NEG_MODE,                                                 \
+      { MUX2, MUX2, RS2_RATES_ALL, RS2_RATES_ALL, 1,            \
+         {{ 0,                      /* CON_REF */                   \
+            36,                     /* SERVICE_OPTION */            \
+            PRIMARY_CHANNEL,        /* FOR_TRAFFIC */               \
+            PRIMARY_CHANNEL,        /* REV_TRAFFIC */               \
+            0,                      /* UI_ENCRYPT_MODE */           \
+            1,                      /* SR_ID */                     \
+            KAL_TRUE,                   /* RLP_INFO_INCL */             \
+            5,                      /* RLP_BLOB_LEN */              \
+            { 1,                    /* RLP_BLOB_TYPE */             \
+              3,                    /* RLP_VERSION */               \
+              NULL_VAL,             /* RTT Omitted */               \
+              KAL_TRUE,                 /* INIT_VAR */                  \
+              NULL_VAL,             /* BS_EXT_SEQ_M Omitted */      \
+              NULL_VAL,             /* MS_EXT_SEQ_M Omitted */      \
+              3,                    /* MAX_MS_NAK_PER_ROUND_FWD */  \
+              3,                    /* MAX_MS_NAK_PER_ROUND_REV */  \
+              3,                    /* NAK_ROUND_FWD */             \
+              3,                    /* NAK_ROUND_REV */             \
+              { 1, 2, 3,},          /* NAK_PER_ROUND_FWD */         \
+              { 1, 2, 3 },},} },    /* NAK_PER_ROUND_REV */         \
+            KAL_TRUE,                       /* FCH_CC_INCL */               \
+            0,                          /* FCH_FRAME_SIZE */            \
+            RC_5,                       /* FOR_FCH_RC */                \
+            RC_4,                       /* REV_FCH_RC */                \
+            KAL_FALSE,                      /* DCCH_CC_INCL */              \
+            1,                          /* DCCH_FRAME_SIZE */           \
+            RC_5,                       /* FOR_DCCH_RC */               \
+            RC_4,                       /* REV_DCCH_RC */               \
+            KAL_FALSE,                      /* FOR_SCH_CC_INCL */           \
+            1,                          /* NUM_FOR_SCH */               \
+        {{  0,                          /* FOR_SCH_ID */                \
+            MUX_OPTION4,                /* FOR_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_5,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}},     /* CODING */                    \
+            KAL_FALSE,                      /* REV_SCH_CC_INCL */           \
+            1,                          /* NUM_REV_SCH */               \
+        {{  0,                          /* REV_SCH_ID */                \
+            MUX_OPTION4,                /* REV_SCH_MUX */               \
+            { 2,                        /* SCH_REC_LEN */               \
+              RC_4,                     /* SCH_RC */                    \
+              SCH_CONV_CODING, }}}}    /* CODING */                    \
+        },
+#else
+   #define SO36_INFO
+   #define CSC_36
+#endif
+#define CSC_SO_CFG_LIST { CSC_35 CSC_36 }
+
+
+/*
+ *    Definition of the Service Option Information List
+ */
+
+#define SO_INFO_LIST {  SO01_INFO   SO02_INFO   SO03_INFO   SO04_INFO   SO05_INFO   \
+                        SO06_INFO   SO07_INFO   SO09_INFO   SO12_INFO   SO13_INFO   \
+                        SO14_INFO   SO15_INFO   SO17_INFO   SO18_INFO   SO19_INFO   \
+                        SO22_INFO   SO23_INFO   SO24_INFO   SO25_INFO   SO30_INFO   \
+                        SO31_INFO   SO32_INFO   SO33_INFO   SO35_INFO   SO36_INFO   \
+                        SO54_INFO   SO55_INFO   SO75_INFO   SO4100_INFO SO4101_INFO \
+                        SO4103_INFO SO8000_INFO SO8002_INFO SO801E_INFO SO801F_INFO \
+                        SO805A_INFO SO805B_INFO SO68_INFO   SO73_INFO   SO32944_INFO\
+                     }
+
+#define SO_COUNT     (  SO_01     + SO_02     + SO_03     + SO_04     + SO_05      \
+                      + SO_06     + SO_07     + SO_09     + SO_12     + SO_13      \
+                      + SO_14     + SO_15     + SO_17     + SO_18     + SO_19      \
+                      + SO_22     + SO_23     + SO_24     + SO_25     + SO_30      \
+                      + SO_31     + SO_32     + SO_33     + SO_35     + SO_36      \
+                      + SO_54     + SO_55     + SO_75     + SO_4100   + SO_4101    \
+                      + SO_4103   + SO_8000   + SO_8002   + SO_801E   + SO_801F    \
+                      + SO_805A   + SO_805B   + SO_68     + SO_73     + SO_32944   \
+                     )
+
+
+
+/*
+ *    Multiplex Option Information
+ */
+
+#define SUPP_0  \
+      { MUX1, RS1_RATES_ALL, RS1_RATES_ALL }, \
+      { MUX2, RS2_RATES_ALL, RS2_RATES_ALL }  
+#if (MAX_SUPP_CHANNELS > 0)   
+   #define SUPP_1 \
+      ,{ MUX3, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX4, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_1
+#endif
+#if (MAX_SUPP_CHANNELS > 1)
+   #define SUPP_2 \
+      ,{ MUX5, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX6, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_2
+#endif
+#if (MAX_SUPP_CHANNELS > 2)
+   #define SUPP_3 \
+      ,{ MUX7, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX8, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_3
+#endif
+#if (MAX_SUPP_CHANNELS > 3)
+   #define SUPP_4 \
+      ,{ MUX9, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX10, RS2_RATES_ALL, RS2_RATES_ALL } 
+#else 
+   #define SUPP_4
+#endif
+#if (MAX_SUPP_CHANNELS > 4)
+   #define SUPP_5 \
+      ,{ MUX11, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX12, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_5
+#endif
+#if (MAX_SUPP_CHANNELS > 5)
+   #define SUPP_6 \
+      ,{ MUX13, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX14, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_6
+#endif
+#if (MAX_SUPP_CHANNELS > 6)
+   #define SUPP_7 \
+      ,{ MUX15, RS1_RATES_ALL, RS1_RATES_ALL }, \
+       { MUX16, RS2_RATES_ALL, RS2_RATES_ALL }  
+#else 
+   #define SUPP_7
+#endif 
+#define MUX_INFO_LIST { SUPP_0 SUPP_1 SUPP_2 SUPP_3 SUPP_4 \
+                        SUPP_5 SUPP_6 SUPP_7 }
+
+#endif   /* _SCC_PFL_H */
+   
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10322\1 2012-09-14 06:09:32 GMT gdeng
+** SCBP#10322**/
+/**Log information: \main\Trophy\Trophy_hjin_href22024\1 2013-03-14 06:22:04 GMT hjin
+** HREF#22024: bug fix for EVRC-B TC_1XADV_01005 fail**/
+/**Log information: \main\Trophy\1 2013-03-14 08:24:09 GMT cshen
+** href#22024**/
+/**Log information: \main\Trophy\SMART\1 2013-04-27 08:09:57 GMT yxma
+** HREF#22188  , modify smartfren primary voice so**/
+/**Log information: \main\Trophy\SMART\2 2013-04-28 02:16:56 GMT yxma
+** HREF#22188  , modify smartfren primary voice so
+|**/
+/**Log information: \main\Trophy\Trophy_gdeng_href22222_fix1\1 2013-06-08 02:09:46 GMT gdeng
+** HREF#22222**/
+/**Log information: \main\Trophy\3 2013-06-08 07:14:45 GMT cshen
+** href#22222**/
+/**Log information: \main\Trophy\Trophy_SO73\1 2013-07-09 05:06:29 GMT gdeng
+** HREF#0000 see scbp11634**/
+/**Log information: \main\Trophy\4 2013-07-17 08:13:04 GMT cshen
+** href#2222**/
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_PSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_PSC.H
new file mode 100644
index 0000000..a34d86f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_PSC.H
@@ -0,0 +1,663 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_psc.h
+ * Project:         SCC
+ * Original Author: MMS
+ * Creation Date:   Mar. 24/1999
+ *
+ * Description:  Packet Data Services Controller Interface
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+ *
+ *************************************************************************
+ *
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_PSC_H
+#define _SCC_PSC_H
+
+/*
+ *    Dependencies
+ */
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+
+void pscReset(void);
+ServiceConfiguration* pscGetCurCfg(void);
+
+
+/*
+ *    Interface from CPC
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcConnectFailInd
+ *
+ * Description:		Indication the connection request has failed
+ *
+ * Parameters:			kal_uint8 reason:  Reason for Failure
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcConnectFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcConnectInd
+ *
+ * Description:		Indication the previous connection request was
+ * 						successfull
+ *
+ * Parameters:			ServiceConfiguration* cfg: Present service configuration
+ * 						kal_uint8 cn:  Connection Reference within the config
+ * 						kal_bool rlpCtl:  Indication if PSC should control RLP
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcConnectInd(ServiceConfiguration* cfg, kal_uint8 cn, kal_bool rlpCtl);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcDisconnectInd
+ *
+ * Description:		Indication the Packet Service option has been
+ * 							disconnected
+ *
+ * Parameters:			kal_uint8 reason:  Reason for disconnection
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcDisconnectInd(kal_uint8 reason);
+#ifndef MTK_CBP_REL_OPTIMIZE
+/***************************************************************************
+ *
+ * Function Name:		pscCpcReleaseInd
+ *
+ * Description:		Indication we have left the traffic channel
+ *
+ * Parameters:			kal_uint8 reason: reason for traffic channel loss
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcReleaseInd(kal_uint8 reason);
+#endif
+/***************************************************************************
+ *
+ * Function Name:		pscCpcAlertInd
+ *
+ * Description:		Indication of an incoming packet call
+ *
+ * Parameters:			FORInfoData *alert: Alert Information structure
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcAlertInd(FORInfoData *alert);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcPageInd
+ *
+ * Description:		Indication of an incoming Page request for packet
+ * 							services
+ *
+ * Parameters:			ServiceOption svcOpt:  Service Option paged
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcPageInd(SysServiceOptionT svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpNoSvcInd
+ *
+ * Description:		Indication the mobile cannot find a wireless service
+ * 			provider
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpNoSvcInd (void);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcSocmInd
+ *
+ * Description:		Indication of an incoming Service Option Control Message
+ * 							for Packet services
+ *
+ * Parameters:			kal_uint8 conRef:  Configuration connection reference
+ * 						kal_uint16 svcOpt:  Service Option
+ * 						kal_uint8 *ctlRec:  Message Data 
+ * 						kal_uint8 length:  Length of message Data
+ * 						kal_uint32 actionTime: 
+ *
+ * Returns:
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcSocmInd(kal_uint8 conRef, kal_uint16 svcOpt, kal_uint8 *ctlRec,
+                                 kal_uint8 length, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpcSocoInd
+ *
+ * Description:		Indication of an incoming Service Option Control Order
+ *
+ * Parameters:			kal_uint8 ordq: Message
+ * 						kal_uint32 actionTime:  
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcSocoInd(kal_uint8 ordq, kal_uint32 actionTime);
+
+void pscCpcOrigSentInd (void);
+
+/*
+ * 	Interface from CP
+ */
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpIdle
+ *
+ * Description:		Indication the CP is in the idle state
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpIdle(void);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpTcAssigned
+ *
+ * Description:		Indication The BS has assigned us a traffic channel
+ *
+ * Parameters:			None
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpTcAssigned(void);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpHandoffInd
+ *
+ * Description:		Indication of a BS handoff
+ *
+ * Parameters:			kal_uint8 type: Type of handoff HARD, SOFT, ANALOG
+ * 						kal_bool cfgChanged:  Indication if the configuration has
+ * 							changed
+ * 						kal_bool setChanged:  Indication if the active set of pilots
+ * 							has changed
+ * 						kal_bool freqChanged:  Indication if the frequency has
+ * 							changed	
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpHandoffInd( kal_uint8 type, kal_bool cfgChanged, kal_bool setChanged, 
+																		kal_bool freqChanged);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpSidNidChange
+ *
+ * Description:		Indication if the SID or NID has changed
+ *
+ * Parameters:			kal_uint16 sid:
+ * 						kal_uint16 nid:
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpSidNidChange(kal_uint16 sid, kal_uint16 nid);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpNetworkPRev
+ *
+ * Description:		Indication if the BS protocol revision has changed after
+ * 							a handoff
+ *
+ * Parameters:			kal_uint8 pRev: New Protocol revision
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpNetworkPRev(kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpRandInd
+ *
+ * Description:		Random number update after an SSD update
+ *
+ * Parameters:			kal_uint32 rand
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpRandInd(kal_uint32 rand);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpSsdbInd
+ *
+ * Description:		Indication of new ssdb value after an SSD update
+ *
+ * Parameters:			kal_uint8 *ssdb: 8 byte ssd value
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpSsdbInd(kal_uint8 *ssdb);
+
+/***************************************************************************
+ *
+ * Function Name: pscCpReadyInd
+ *
+ * Description: Indication the CP has found cellular service.
+ *
+ * Parameters:
+ *   BandClass band:  Band Class of the BS
+ *   kal_uint8 block:  CDMA Block (A,B,..)
+ *   kal_uint16 sid:  System Id
+ *   kal_uint16 nid:  Network Id
+ *   kal_uint8 type:  Type of system (1 -- CDMA)
+ *				 (2 -- TDMA)
+ *				 (3 -- ANALOG)
+ *   kal_uint8 pRev: Protocol Revision
+ *
+ * Returns:
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpReadyInd (SysCdmaBandT band, kal_uint8 block, kal_uint16 sid, kal_uint16 nid, kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:		pscCpZone
+ *
+ * Description:		Indication of a change in Registration Zone
+ *
+ * Parameters:			kal_uint8 zone: New Registration Zone
+ *
+ * Returns:				None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpZone(kal_uint8 zone);
+
+/*
+ * 	Service Configuration Validation Funcions
+ */
+/***************************************************************************
+ *
+ * Function Name:		pscNegGetServCfgNoConnections
+ *
+ * Description:		Returns the Preferred Service Configuration given
+ * 						a valid service option number
+ *
+ * Parameters:			ServiceOption:  Valid Service Option
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid 
+ * 														ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* pscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:		pscGetPrefServCfg
+ *
+ * Description:		Get preferred Service Configuration
+ *
+ * Parameters:			None
+ *
+ * Returns:				The preferred Service Configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* pscGetPrefServCfg(void); 
+
+/***************************************************************************
+ * Function Name:		pscNegServiceConfigurationInitiation
+ *
+ * Description:		Indication to SCC to begin the process of service
+ * 						configuration negotiation
+ *
+ * Parameters:			None
+ *
+ * Returns:				ServiceConfiguration *: Pointer to a valid service 
+ * 							configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* pscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:		pscNegServiceConfigurationValidation
+ *
+ * Description:		Validate the given service configuration and 
+ * 						propose an alternate if the given configuration
+ * 						is not supported and val is KAL_FALSE
+ *
+ * Parameters:			ServiceConfiguration *sc: Input -- pointer to a service 
+ * 															configuration
+ *															  Output -- alternate 
+ *																			configuration
+ * 						kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ * 							this routine will not propose an alternate 
+ * 							configuration if the given configuration is 
+ * 							not supported
+ *
+ * Returns:				SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse pscNegServiceConfigurationValidation(kal_bool valOnly,
+  										ServiceConfiguration *sc);
+
+/***************************************************************************
+ *
+ * Function Name:		pscNegServiceOptionValidation
+ *
+ * Description:		Validate service option and propose alternate if 
+ * 						it is not supported
+ *
+ * Parameters:			ServiceOption *so: Input: Pointer to service option number
+ * 															to be validated
+ *													 Output: Alternative Service Option
+ *
+ * Returns:				SCResponse:		Either 'SC_Accept' 'SC_Reject' or
+ * 							'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse pscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+kal_bool pscViewDormantMode (void);
+
+void pscTcTimerExpiredInd (void);
+
+/****************************************************************************
+ *
+ * Name:           pscGetPacketZoneId
+ *
+ * Description:    Returns current packet zone id
+ *              
+ * Parameters:     None
+ *
+ * Returns:        kal_uint8 currentZone
+ *
+ ****************************************************************************/
+kal_uint8 pscGetPacketZoneId(void);
+
+/****************************************************************************
+ *
+ * Name:        pscGetProfile 
+ *
+ * Scope:       public
+ *
+ * Description: Retrieves the address of the static structure _profiles.
+ *              
+ * Parameters:  (none)
+ *
+ * Returns:     ServCfgParms * - pointer to _profiles
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServCfgParms *pscGetProfile(void);
+
+
+/***************************************************************************
+ *
+ * Function Name:      xxxGetState
+ *
+ * Description:      
+ *
+ * Parameters:      
+ *
+ * Returns:         state
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_uint8 pscGetState(void);
+
+/***************************************************************************
+ *
+ * Function Name:    pscCpcInit
+ *
+ * Description:      clear global flags.
+ *
+ * Parameters:       (none)
+ *
+ *
+ ****************************************************************************/
+void pscCpcInit(void);
+void SetPscState(PscState newState);
+
+void pscHATExpiredInd(void);
+void pscHTExpiredInd(void);
+
+/****************************************************************************
+ *
+ * Name:        sccPscSetPzReconnect() 
+ *
+ * Scope:       public
+ *
+ * Description: This function sets pz_reconnect based on received value.
+ *              
+ * Parameters:  kal_bool KAL_FALSE - set pz_reconnect = KAL_FALSE
+ *                   KAL_TRUE  - set pz_reconnect = KAL_TRUE
+ *
+ ****************************************************************************/
+void sccPscSetPzReconnect(kal_bool val);
+
+/****************************************************************************
+ *
+ * Name:        sccPscGetPzReconnect() 
+ *
+ * Scope:       public
+ *
+ * Description: This function returns current pz_reconnect value.
+ *              
+ * Parameters:  void
+ *
+ * Returns:     kal_bool pz_reconnect
+ *
+ ****************************************************************************/
+kal_bool sccPscGetPzReconnect(void);
+
+/****************************************************************************
+ *
+ * Name:        pscCpcTcEstablishedInd 
+ *
+ * Scope:       public
+ *
+ * Description: Routes a Traffic Channel Established indication to  the PSC.
+ *              
+ * Parameters:
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void pscCpcTcEstablishedInd (void);
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccPscSensitiveClean(void);
+#endif
+#endif /* _SCC_PSC_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_TR.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_TR.H
new file mode 100644
index 0000000..b1e0009
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_TR.H
@@ -0,0 +1,330 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     scc_tr.h
+ *
+ * Purpose:    Debug/Trace Macros and associated function prototypes for
+ *             SCC PE.
+ *
+ ****************************************************************************
+ *
+ * RCS Information
+ *
+ * $Id: SCC_TR.H 1.2 2004/03/25 12:07:26 fpeng Exp $
+ * 
+ * $Log: SCC_TR.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 03 15 2017 max.wang
+ * [MOLY00235251] [preIT][1X PS CALL]porting code
+ * Porting BIANCO.BRINGUP.DEV to TRUNCK
+ * Revision 1.2  2004/03/25 12:07:26  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:37  fpeng
+ * Initial revision
+ * Revision 1.7  2002/10/04 07:33:57  mshaver
+ * Added fault file/line info debugging capability.
+ * Revision 1.6  2002/06/06 14:55:55  bsharma
+ * Updated Copyright info.
+ * Revision 1.5  2002/02/27 20:56:04  mclee
+ * IS801 Trace Ids added
+ * Revision 1.4  2001/03/05 12:12:50  huey
+ * Add SYS_TARGET_SIM compiler option for TRACE marcos
+ * Revision 1.3  2001/03/05 11:56:40  huey
+ * Add SYS_TARGET_SIM compiler option for TRACE fuction macros
+ * Revision 1.2  2001/03/01 15:07:47  huey
+ * add SYS_TARGET_SIM compiling option to define TRACE macros for simulation build
+ * Revision 1.1  2001/01/17 10:57:39  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:55  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:06Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.5  2000/02/17 22:16:35  bcassidy
+ * 1. Add support for timer controller module.
+ *
+ * Revision 1.4  2000/01/05 00:09:31  ddoucett
+ * fixed various type mismatches with the api document
+ *
+ * Revision 1.3  1999/12/09 20:56:14  ddoucett
+ * added API id
+ *
+ * Revision 1.2  1999/12/09 20:15:03  ddoucett
+ * added SCC_API id
+ *
+ * Revision 1.1  1999/12/08 06:03:38  ddoucett
+ * Initial revision
+ *
+ * Revision 1.7  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ *
+ *
+ *
+ ****************************************************************************
+ *
+ *
+ ****************************************************************************/
+
+/*****************************************************************************
+ * This file contains a sample set of definitions that can be used with
+ * the tracing built into the PE. Tracing is a mechanism that reports
+ * significant events to the user regarding internal processing done by
+ * the PE. A sample implementation is contained in trace.c.
+ *
+ * To enable tracing, the compiler define TRACEON must be set. When enabled
+ * the TRACE macros are compiled in. The mechanism to report the trace is
+ * target dependent. The parameters used in the TRACE macros include:
+ *
+ *  cat - the trace category
+ *  level - the level the trace event is at (1-high level, 5-detail)
+ *  token - the unique trace event identifier within a module
+ *  fmt/s - the string that appears in the TRACE macro, it can contain
+ *          formatting or be a string only
+ *  var1 - if present, the first data item passed into the macro
+ *  var2 - if present, the second data item passed into the macro
+ *
+ * Each source file contains the following definitions:
+ *  MYNAME - a string representing the name of the source file
+ *  MYNAMEID - a unique identifier (defined within cp_tr.h) for that
+ *             source file
+ *
+ * These macros provide a flexible means of supporting tracing. The macros
+ * could be implemented to simply print the name of the file and the string
+ * associated with trace macro. Alternatively, a scheme can be used to
+ * transmit just the moduleID, fmt/s tokenID, and any data across a realtime
+ * link to a host that can reconstruct the trace strings for display.
+ *
+ ****************************************************************************/
+#ifndef _SCC_TR_H_
+#define _SCC_TR_H_ 		1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "itrace.h"
+#include "psw_dhl_trace.h"
+#ifdef TRACEON
+
+  #include "tokens.h"   /* include numeric tokens if tracing is enabled */
+
+  #define MYENGINENAME "scc"
+  #define MYENGINEID SCC_ENGINE_ID
+	
+  /* Available trace categories */
+  typedef enum
+  {
+    ENG_NO_CATEGORY = 0,
+    CAT_API,
+    CAT_BIOS,
+    CAT_FSM,
+    ENG_ERROR_TR,
+    CAT_SCC
+  } TraceCategory;
+
+  #define NUM_TRACE_CATEGORIES 		6 
+
+  /* If you get this #error Change MAX_NUM_TRACE_CATEGORIES in itrace.h */
+  #if (NUM_TRACE_CATEGORIES > MAX_NUM_TRACE_CATEGORIES)
+  #error SCC has too many trace categories!
+  #endif
+
+  /* Service Controller Module Ids */
+  #define SCC_CPC_ID        1
+  #define SCC_NEG_ID        2
+  #define SCC_DBC_ID        3
+  #define SCC_OSC_ID        4
+  #define SCC_MSC_ID        5
+  #define SCC_VSC_ID        6
+  #define SCC_DSC_ID        7
+  #define SCC_PSC_ID        8
+  #define SCC_LSC_ID        9
+  #define SCC_BIOS_ID      10
+  #define SCC_API_ID       11
+  #define SCC_TC_ID        12
+  #define SCC_CSC_ID       13
+  #define MAX_MODULEID     13  /* used by the token parser */
+
+  /* Define trace table indices for TRACEINDEX */
+  #define SCC_TRACE_TABLE_FSM_NAMES   1
+  #define SCC_TRACE_TABLE_CPC_STATES  2
+  #define SCC_TRACE_TABLE_CPC_EVENTS  3
+  #define SCC_TRACE_TABLE_DSC_STATES  4
+  #define SCC_TRACE_TABLE_DSC_EVENTS  5
+  #define SCC_TRACE_TABLE_MSC_STATES  6
+  #define SCC_TRACE_TABLE_MSC_EVENTS  7
+  #define SCC_TRACE_TABLE_NEG_STATES  8
+  #define SCC_TRACE_TABLE_NEG_EVENTS  9
+  #define SCC_TRACE_TABLE_PSC_STATES 10
+  #define SCC_TRACE_TABLE_PSC_EVENTS 11
+  #define SCC_TRACE_TABLE_VSC_STATES 12
+  #define SCC_TRACE_TABLE_VSC_EVENTS 13
+  #define SCC_TRACE_TABLE_LSC_STATES 14
+  #define SCC_TRACE_TABLE_LSC_EVENTS 15
+  #define SCC_TRACE_TABLE_DBC_STATES 16
+  #define SCC_TRACE_TABLE_DBC_EVENTS 17
+  #define SCC_TRACE_TABLE_OSC_STATES 18
+  #define SCC_TRACE_TABLE_OSC_EVENTS 19
+  #define SCC_TRACE_TABLE_CSC_STATES 20
+  #define SCC_TRACE_TABLE_CSC_EVENTS 21
+
+  extern CONST char* SccFsmNames[];
+
+#define TRACE_SCC_STATE_INFO_ENTER(SCC_FSM,EVENT,MODULE)  if(CONDITIONAL_STATE != SCC_FSM.state) \
+                                                    { \
+                                                    dhl_trace(TRACE_INFO, DHL_USER_FLAG_NONE, DHL_SCC_ENTRY_STATE, \
+                                                             #MODULE, \
+		                                                     MODULE##StateNames[SCC_FSM.state],  \
+		                                                     MODULE##EventNames[EVENT]); \
+                                                    } \
+                                                    else \
+                                                    { \
+                                                    dhl_trace(TRACE_INFO, DHL_USER_FLAG_NONE, DHL_SCC_ENTRY_STATE, \
+                                                             #MODULE, \
+		                                                     "conditional state",  \
+		                                                     MODULE##EventNames[EVENT]); \
+                                                    }
+
+#define TRACE_SCC_STATE_INFO_LEAVE(SCC_FSM,MODULE)  if(CONDITIONAL_STATE != SCC_FSM.state) \
+	                                                { \
+	                                                	dhl_trace(TRACE_INFO, DHL_USER_FLAG_NONE, DHL_SCC_EXIT_STATE, \
+                                                                    #MODULE, \
+                                                                	MODULE##StateNames[SCC_FSM.state]); \
+	                                                } \
+                                                    else \
+                                                    { \
+	                                                	dhl_trace(TRACE_INFO, DHL_USER_FLAG_NONE, DHL_SCC_EXIT_STATE, \
+                                                                    #MODULE, \
+                                                                	"conditional state"); \
+                                                    }
+
+
+
+
+
+/*****************************************************************************
+ * Macro definitions for ASSERT handling
+ ****************************************************************************/
+#if (ITRACE_TYPE == TOKEN_TRACING)
+
+#ifdef IASSERT
+#undef IASSERT
+#endif
+
+#ifdef SYS_DEBUG_FAULT_FILE_INFO
+
+#define IASSERT(expr) if (!(expr)) engAssert(SCC_ENGINE_ID, MyNameID, __MODULE__, __LINE__)
+
+#else
+
+#define IASSERT(expr) if (!(expr)) engAssert(SCC_ENGINE_ID, MyNameID, __LINE__)
+
+#endif /* SYS_DEBUG_FAULT_FILE_INFO */
+
+#else /* ~TOKEN_TRACING */
+#define IASSERT(expr) if (!(expr)) engAssert(MyName, __LINE__)
+#endif /* ITRACE_TYPE */
+
+/*****************************************************************************
+ * Macro definitions for tracing enabled
+ ****************************************************************************/
+
+#if (ITRACE_TYPE == TOKEN_TRACING)
+
+#ifdef TRACE
+#undef TRACE
+#endif
+
+#define TRACE(cat, level, token, s) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+               MyNameID, token, 0, NULL, 0, NULL)
+
+
+#ifdef TRACEDATA
+#undef TRACEDATA
+#endif
+
+#define TRACEDATA(cat, level, token, str, dat, len) \
+  engTraceDataEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                    MyNameID, token, len, (kal_uint8 *)dat)
+
+
+#ifdef FTRACE1P
+#undef FTRACE1P
+#endif
+#define FTRACE1P(cat, level, token, fmt, var1) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                    MyNameID, token, sizeof(var1), (kal_uint8 *)&var1, 0, NULL)
+
+#ifdef FTRACE2P
+#undef FTRACE2P
+#endif
+#define FTRACE2P(cat, level, token, fmt, var1, var2) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                MyNameID, token, \
+                sizeof(var1), (kal_uint8 *)&var1, sizeof(var2), (kal_uint8 *)&var2)
+
+#ifdef FTRACES
+#undef FTRACES
+#endif
+#define FTRACES(cat, level, token, fmt, var1) \
+  engTraceStringEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                      MyNameID, token, (char *)var1)
+#else /* ~TOKEN_TRACING */
+
+#define TRACE(cat, level, token, s) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                MyName, s, 0, NULL, 0, NULL)
+
+#define TRACEDATA(cat, level, token, str, dat, len) \
+  engTraceDataEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                    MyName, str, len, (kal_uint8*)dat)
+
+#define FTRACE1P(cat, level, token, fmt, var1) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                MyName, fmt, (kal_uint8)sizeof(var1), &var1, 0, NULL)
+
+#define FTRACE2P(cat, level, token, fmt, var1, var2) \
+  engTraceEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                MyName, fmt, (kal_uint8)sizeof(var1), &var1, \
+                (kal_uint8)sizeof(var2), &var2)
+
+#define FTRACES(cat, level, token, fmt, var1) \
+  engTraceStringEvent(SCC_ENGINE_ID, (kal_uint8)cat, (kal_uint8)level, \
+                      MyName, fmt, (char *)var1)
+
+#if (ITRACE_TYPE == STRING_TRACING)
+
+/* Indexed by FSM ID, which is the same as module ID */
+TRACE_TABLE(SccFsmNames, SCC_TRACE_TABLE_FSM_NAMES, MAX_MODULEID+1) =
+{
+  "",      /* Not used */
+  "CPC",
+  "NEG",
+  "DBC",
+  "OSC",
+  "MSC",
+  "VSC",
+  "DSC",
+  "PSC",
+  "LSC"
+};
+
+#endif /* ITRACE_TYPE */
+
+
+
+#endif  /* ITRACE_TYPE */
+#endif /* TRACEON */
+#endif  /* _SCC_TR_H_ */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_TUNE.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_TUNE.H
new file mode 100644
index 0000000..478deae
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_TUNE.H
@@ -0,0 +1,374 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:			scc_tune.th
+ * Project: 			SCC
+ * Original Author:	Dan Doucette
+ * Creation Date:		Oct 26, 1999
+ *
+ * Description:		Definition of tuneable parameters
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_TUNE_H
+#define _SCC_TUNE_H
+
+/*
+ * 	Dependencies
+ */
+#include "sysdefs.h"
+#include "Serv_cfg.h"
+/*
+ * 	SCC Constants
+ */
+
+/*
+ *  Declaration of supported Service Options
+ */
+#define SO_ENABLED    1
+#define SO_DISABLED   0
+
+/* Voice */
+#define SO_01   SO_DISABLED
+#define SO_17   SO_DISABLED
+#define SO_03   SO_ENABLED
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+#define SO_68   SO_DISABLED
+#else
+#define SO_68   SO_ENABLED
+#endif
+
+#define SO_73   SO_DISABLED
+
+#define SO_8000 SO_DISABLED
+#define SO_56   SO_DISABLED
+#define SO_62   SO_DISABLED
+#define SO_63   SO_DISABLED
+#define SO_70   SO_DISABLED
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+#define SO_32944 SO_ENABLED
+#else
+#define SO_32944 SO_DISABLED
+#endif
+
+/* Packet Data and Circuit Data */
+#ifdef SYS_OPTION_RLP
+#define SO_04   SO_DISABLED
+#define SO_05   SO_DISABLED
+#define SO_07   SO_DISABLED
+#define SO_12   SO_DISABLED
+#define SO_13   SO_DISABLED
+#ifdef KDDI_EXTENSIONS
+#define SO_15   SO_ENABLED
+#else
+#define SO_15   SO_DISABLED
+#endif
+#define SO_22   SO_DISABLED
+#define SO_23   SO_DISABLED
+#define SO_24   SO_DISABLED
+#define SO_25   SO_DISABLED
+#define SO_33   SO_ENABLED
+#define SO_4100 SO_DISABLED
+#define SO_4101 SO_DISABLED
+#define SO_4103 SO_DISABLED
+#define SO_805A SO_DISABLED
+#define SO_805B SO_DISABLED
+#else
+#define SO_04   SO_DISABLED
+#define SO_05   SO_DISABLED
+#define SO_07   SO_DISABLED
+#define SO_12   SO_DISABLED
+#define SO_13   SO_DISABLED
+#define SO_15   SO_DISABLED
+#define SO_22   SO_DISABLED
+#define SO_23   SO_DISABLED
+#define SO_24   SO_DISABLED
+#define SO_25   SO_DISABLED
+#define SO_33   SO_DISABLED
+#define SO_4100 SO_DISABLED
+#define SO_4101 SO_DISABLED
+#define SO_4103 SO_DISABLED
+#define SO_805A SO_DISABLED
+#define SO_805B SO_DISABLED
+#endif /* SYS_OPTION_RLP */
+
+/* SMS */
+#define SO_06   SO_ENABLED
+#define SO_14   SO_ENABLED
+
+/* OTASP */
+#define SO_18   SO_ENABLED
+#define SO_19   SO_ENABLED
+
+/* Test (loopback/Markov) */
+#define SO_02   SO_ENABLED
+#define SO_09   SO_ENABLED
+#define SO_30   SO_DISABLED
+#define SO_31   SO_DISABLED
+#define SO_32   SO_ENABLED
+#define SO_54   SO_ENABLED
+#define SO_55   SO_ENABLED
+#define SO_75   SO_ENABLED
+#define SO_8002 SO_DISABLED
+#define SO_801E SO_ENABLED
+#define SO_801F SO_ENABLED
+
+/* IS801.1 Location Services */
+#define SO_35   SO_ENABLED
+#define SO_36   SO_ENABLED
+#define SO_08   SO_DISABLED
+#define SO_20   SO_DISABLED
+#define SO_21   SO_DISABLED
+#define SO_16   SO_DISABLED
+#define SO_4104 SO_DISABLED
+#define SO_26   SO_DISABLED
+#define SO_27   SO_DISABLED
+#define SO_28   SO_DISABLED
+#define SO_29   SO_DISABLED
+#define SO_34   SO_DISABLED
+
+
+
+/*
+ * 	Multiplex Option Information
+ */
+
+/*
+ *		Declaration of maximum supported multiplex options 
+ */
+#define MAX_FOR_SUPP_CHANNELS		5
+#define MAX_REV_SUPP_CHANNELS		1
+
+/*
+ * 	SCC Maximum Number of Simultaneous Connections Supported
+ */
+#define SCC_MAX_CONNECTIONS      1   /* range: 1 - 2  */
+/*
+ * 	SCC Maximum Number of Dialled Digits
+ */
+#define SCC_MAX_DIGITS      50   /* The device must support international dialing up to 49 digits  */
+
+
+/*
+ *		Maximum Number of Databurst Messages Queued up for Transmission
+ */
+#define DBC_MAX_Q_SIZE		3		/*  range: 1 - 255 */ 
+
+/*
+ *		Maximum Data Burst Message Size
+ */
+#define DBC_MAX_MSG_SIZE	240
+
+/*
+ * 	Maximum number of times to retry connection for a data burst message 
+ *		send before returning a failure to the sender
+ */
+	/* set to 1, not retry at scc dbc, retry at SMS TL */
+#define DBC_MAX_RETRY_COUNT 1
+/* ---------------------------------------------------------------------
+ * Name: Default Dormant Timeout Value
+ *
+ * Description:
+ *   This switch defines the minimum amount of time (in deci-seconds) that
+ *   the Packet Data Service will remain in the DORMANT state.  This value
+ *   may be overridden by the IWF with a Dormant Timer Service Option Control
+ *   Message.
+ *
+ * Restrictions:
+ *   0 - 255
+ *
+ * Default Value:
+ *   30, timer length is 3 secomds, modify for ALPS02594252
+ */
+#define SCC_DEFAULT_DORM_TMO 30
+
+/* ---------------------------------------------------------------------
+ * Name: Japanese Packet Data Services Support.
+ *
+ * Description:
+ *   This switch determines if SCC will include special support for
+ *   Japanese Packet Data Services as defined by DDI/IDO.  Many of the
+ *   requirements in the DDI/IDO spec override those in IS-707-A.
+ *
+ * Restrictions:
+ *   KAL_FALSE, KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_FALSE
+ */
+#define SCC_JAPANESE_DATA 0
+
+/* ---------------------------------------------------------------------
+ * Name: Default Service Option.
+ *
+ * Description:
+ *   This switch determines the default service option used by the BS.
+ *
+ * Restrictions:
+ *   1 - 65534
+ *
+ * Default Value:
+ *   1
+ */
+#define SCC_DEFAULT_SERVICE_OPTION 1
+
+#define DEFAULT_IDMC           KAL_TRUE
+#define DEFAULT_LSD_SO_PREF    SERVICE_OPTION_15
+#define DEFAULT_MSD_SO_PREF    SERVICE_OPTION_33
+#define DEFAULT_DS_PAGE_MAP    SERVICE_OPTION_3
+#define DEFAULT_ASYNC_SO       SERVICE_OPTION_12
+#define DEFAULT_FAX_SO         SERVICE_OPTION_13
+#define DEFAULT_RS1_DS_SO      SERVICE_OPTION_4
+#define DEFAULT_RS2_DS_SO      SERVICE_OPTION_12
+#define DEFAULT_RS1_FAX_SO     SERVICE_OPTION_5
+#define DEFAULT_RS2_FAX_SO     SERVICE_OPTION_13
+#define DEFAULT_PACKET_SO      SERVICE_OPTION_15
+#define DEFAULT_QNC_SINGLE     SERVICE_OPTION_12
+#define DEFAULT_UP_BRWSR       SERVICE_OPTION_12
+#define DEFAULT_BRWSR_ON_ASYNC SERVICE_OPTION_12
+#define DEFAULT_TCP_BRWSR      SERVICE_OPTION_12
+#define DEFAULT_IS126_SO       SERVICE_OPTION_2
+#define DEFAULT_MARKOV_SO      SERVICE_OPTION_32798
+#define DEFAULT_SUPL_LPBK_SO   SERVICE_OPTION_30
+#define DEFAULT_SMS_SO         SERVICE_OPTION_6
+#define DEFAULT_OTASP_SO       SERVICE_OPTION_19
+#define DEFAULT_CSC_SO		     SERVICE_OPTION_35
+
+/* Function Prototypes */
+kal_uint8* GetRlOrigDigits (void);
+#endif
+/**Log information: \main\CBP80\cbp80_cshen_scbp10103\1 2012-07-26 08:28:55 GMT cshen
+** cbp80_cshen_scbp10103**/
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/SCC_VSC.H b/mcu/interface/protocol/as_c2k/1xrtt/SCC_VSC.H
new file mode 100644
index 0000000..ccdcfac
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/SCC_VSC.H
@@ -0,0 +1,580 @@
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_vsc.h
+ * Project:         SCC
+ * Original Author: MMS
+ * Creation Date:   Mar. 24/1999
+ *
+ * Description:  Voice Services Controller Interface
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * $Id: SCC_VSC.H 1.3 2004/09/28 15:36:47 chinh Exp $
+ * 
+ * $Log: SCC_VSC.H $
+ *
+ * 07 04 2019 lemon.xiong
+ * [MOLY00418783] [VMOLY]porting code
+ *
+ * 11 05 2018 lemon.xiong
+ * [MOLY00362041] [Gen95][USIR] user sensitive information removal
+ * 	
+ * 	.
+ *
+ * 08 28 2017 lemon.xiong
+ * [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ * 	
+ * 	scc code optimization and scc fsm trace change
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 03 29 2017 max.wang
+ * [MOLY00238298] [voice call] porting code from MP6
+ * 	
+ * 	porting code for SIXTH00017085
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.3  2004/09/28 15:36:47  chinh
+ * Merged changes from cbp6.0.
+ * Revision 1.2  2004/03/25 12:07:27  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:38  fpeng
+ * Initial revision
+ * Revision 1.4  2002/06/06 14:56:16  bsharma
+ * Updated Copyright info.
+ * Revision 1.3  2001/12/14 17:15:03  mclee
+ * prototype vscGetCurType()
+ * Revision 1.2  2001/07/02 14:50:30  kmar
+ * Update SCC and SMS to CBP3 v360.
+ * New function prototypes.
+ * Revision 1.1  2001/01/17 10:57:41  plabarbe
+ * Initial revision
+ * Revision 1.1  2000/10/24 14:11:56  fpeng
+ * Initial revision
+ * Revision 1.3  2000/08/24 00:11:02Z  hhong
+ * To update to SCC ver. 2.7
+ * Revision 1.16  2000/03/10 00:05:41  bcassidy
+ * 1. Remove vscCpHandoffInd.
+ *    [CPC sends connectInd instead].
+ *
+ * Revision 1.15  2000/03/01 23:15:32  bcassidy
+ * 1. Update vscCpcDisconnectInd to match current design.
+ *
+ * Revision 1.14  2000/02/17 19:19:44  dfischer
+ * Added api to get state
+ *
+ * Revision 1.13  2000/02/01 23:21:14  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.12  1999/12/16 18:14:19  ddoucett
+ * fixed arm compiler warnings
+ *
+ * Revision 1.11  1999/12/08 19:27:06  ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.10  1999/12/08 06:03:38  ddoucett
+ * redesign of VSC for new negotiation procedures
+ *
+ * Revision 1.9  1999/07/24 00:36:22  msmith
+ * Removed ARM warnings
+ *
+ * Revision 1.8  1999/07/23 20:12:35  msmith
+ * Added support for new HandoffInd parameters and removel of ProtRev from it
+ *
+ * Revision 1.7  1999/07/22 20:19:11  msmith
+ * Added RCS log support
+ *
+ *
+ *
+ * This Software is the property of ISOTEL Research Ltd.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * 220, 6815-8th Street N.E.
+ * Calgary, Alberta, Canada T2E 7H7
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_VSC_H
+#define _SCC_VSC_H
+
+/*
+ *    Dependencies
+ */
+
+#include <string.h>
+#include "SCC_TR.H"
+#include "SCC_DATA.H"
+#include "SCC_TUNE.H"
+#include "SCC_PFL.H"
+#include "SCC_API.H"
+#include "SCC_BIOS.H"
+#include "SCC_CPC.H"
+
+/*
+ *    Common Voice Services Functions
+ */
+
+/***************************************************************************
+ *
+ * Function Name:      vscReset
+ *
+ * Description:      Initialize the VSC on power up
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+extern void vscReset(void);
+#ifdef MTK_CBP_REL_OPTIMIZE
+extern kal_bool IsLoopBackInitByVoiceCall(void);
+#endif
+
+/***************************************************************************
+ *
+ * Function Name:      vscGetCurCfg
+ *
+ * Description:      Returns the Current configuration within VSC
+ *
+ * Parameters:         None
+ *
+ * Returns:            ServiceConfiguration*: pointer to the Current 
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* vscGetCurCfg(void);
+
+
+/*
+ *      CPC interface to the Voice Service Controller 
+ */
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcAlertInd
+ *
+ * Description:      Indication an incoming call for data services is pending
+ *
+ * Parameters:         FORInfoData *alert:  Alert Information
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcAlertInd(FORInfoData *alert);
+
+/***************************************************************************
+ *
+ * Function Name:    vscCpcConnectFailInd
+ *
+ * Description:      Indication the connection attempt failed
+ *
+ * Parameters:       kal_uint8 reason:  Reason for Failure
+ *
+ * Returns:          None
+ *
+ * Notes:
+ *
+ ***************************************************************************/
+void vscCpcConnectFailInd(kal_uint8 reason);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcConnectInd
+ *
+ * Description:      Indication the CPC has connected a data service option
+ *
+ * Parameters:         ServiceConfiguration cfg: connected service configuration
+ *                     kal_uint8 cn:  Connection Record Index
+ *                     kal_bool rlpCtl:  Indication if VSC controlls RLP
+ *                     kal_bool origDir:  Indication of the origination direction
+ *                        of the call   KAL_FALSE -- mobile terminated call
+ *                                      KAL_TRUE -- mobile originated call
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcConnectInd(ServiceConfiguration *cfg, kal_uint8 cn);
+
+/****************************************************************************
+ *
+ * Name:        dscCpcDisconnectInd 
+ *
+ * Scope:       public
+ *
+ * Description: Indication that the currently connected Voice service has been
+ *              disconnected.
+ *              
+ * Parameters:
+ *   kal_bool fade - KAL_TRUE: The service was disconnected due to a fade.
+ *
+ * Returns:
+ *   void
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+#ifdef MTK_CBP_REL_OPTIMIZE
+void vscCpcDisconnectInd (kal_uint8);
+#else
+void vscCpcDisconnectInd (kal_bool fade);
+#endif
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcPageInd
+ *
+ * Description:      Indication of an incoming page for data services
+ *
+ * Parameters:         kal_uint16 svcOpt:  Service option of the incoming page
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcPageInd(kal_uint16 svcOpt);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcSocoInd
+ *
+ * Description:      Indication from CPC of a pending Service Option Control
+ *                      Order for voice services
+ *
+ * Parameters:         kal_uint8 ordq: message contents
+ *                   kal_uint32 actionTime:  action time of the message
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcSocoInd(kal_uint8 ordq, kal_uint32 actionTime);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcSocmInd
+ *
+ * Description:      Indication from CPC of a pending Service Option Control
+ *                      Message for voice services
+ *
+ * Parameters:         kal_uint8 conRef: Service Option connection reference
+ *                   kal_uint16 svcOpt: Service Option
+ *                   kal_uint8 *ctlRec: Pointer to the message data
+ *                   kal_uint8 length: length of the message in bytes
+ *                   kal_uint32 actionTime:  action time of the message
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcSocmInd(kal_uint8 conRef, kal_uint16 svcOpt, kal_uint8 *ctlRec, 
+                                    kal_uint8 length, kal_uint32 actionTime);
+
+
+/*
+ *      Interface from Call Processing
+ */
+/***************************************************************************
+ *
+ * Function Name:      vscCpNetworkPRev
+ *
+ * Description:      Indication of the current network protocol revision
+ *
+ * Parameters:         kal_uint8 pRev:  Protocol Revision of the current BS
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpNetworkPRev(kal_uint8 pRev);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpNoSvcInd
+ *
+ * Description:      No Service Currently availible
+ *
+ * Parameters:         None
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpNoSvcInd(void);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpReadyInd
+ *
+ * Description:      Indication the CP is in idle state and has acquired
+ *                      a base station with the following parameters
+ *
+ * Parameters:         BandClass band:   Band Class of connection
+ *                   kal_uint8 block:  CDMA Block (A...F)
+ *                   kal_uint16 sid:  System Id
+ *                   kal_uint16 nid:  Network Id
+ *                   kal_uint8 type:  type of channel
+ *                               (1 = CDMA)
+ *                               (2 = TDMA)
+ *                               (3 = AMPS)
+ *                   kal_uint8 protRev:  Protocol revision of the BS
+ *
+ * Returns:            None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpReadyInd(SysCdmaBandT band, kal_uint8 block, kal_uint16 sid, 
+                   kal_uint16 nid, kal_uint8 protRev);
+
+/*
+ *    Voice Services Service Validation Procedures
+ */
+
+/***************************************************************************
+ *
+ * Function Name:      vscNegGetServCfgNoConnections
+ *
+ * Description:      Returns the Preferred Service Configuration given
+ *                   a valid service option number
+ *
+ * Parameters:         ServiceOption:  Valid Service Option
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid 
+ *                                           ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* vscNegGetServCfgNoConnections(SysServiceOptionT so);
+
+/***************************************************************************
+ *
+ * Function Name:      vscNegServiceConfigurationInitiation
+ *
+ * Description:      Indication to SCC to begin the process of service
+ *                   configuration negotiation
+ *
+ * Parameters:         None
+ *
+ * Returns:            ServiceConfiguration *: Pointer to a valid service 
+ *                      configuration
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* vscNegServiceConfigurationInitiation(kal_uint8 rs);
+
+/***************************************************************************
+ *
+ * Function Name:      vscNegServiceConfigurationValidation
+ *
+ * Description:      Validate the given service configuration and 
+ *                   propose an alternate if the given configuration
+ *                   is not supported and val is KAL_FALSE
+ *
+ * Parameters:         ServiceConfiguration *sc: Input -- pointer to a service 
+ *                                              configuration
+ *                                               Output -- alternate 
+ *                                                         configuration
+ *                   kal_bool val:  Validate Only Flag, if it is KAL_TRUE 
+ *                      this routine will not propose an alternate 
+ *                      configuration if the given configuration is 
+ *                      not supported
+ *
+ * Returns:            SCResponse:  Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse vscNegServiceConfigurationValidation(kal_bool valOnly,
+                                ServiceConfiguration *sc);
+
+/***************************************************************************
+ *
+ * Function Name:      vscNegServiceOptionValidation
+ *
+ * Description:      Validate service option and propose alternate if 
+ *                   it is not supported
+ *
+ * Parameters:         ServiceOption *so: Input: Pointer to service option number
+ *                                              to be validated
+ *                                        Output: Alternative Service Option
+ *
+ * Returns:            SCResponse:      Either 'SC_Accept' 'SC_Reject' or
+ *                      'SC_Alternate'
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+SCResponse vscNegServiceOptionValidation(SysServiceOptionT *so, kal_bool paged);
+
+/***************************************************************************
+ *
+ * Function Name:    vscGetNumAltSo
+ *
+ * Description:      Returns the number of service options listed for
+ *                   the voice type.
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          kal_uint8 - the number of alternative voice service options
+ *                           supported by the mobile
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+kal_uint8 vscGetNumAltSo(void);
+
+/***************************************************************************
+ *
+ * Function Name:      vscCpcIdleConnInd
+ *
+ * Description:      Indication of a connection at idle state from CPC. It's
+ *                   more than likely caused by a queued MO call.
+ *
+ * Parameter:
+ *                   ServiceConfiguration cfg: connected service configuration
+ *                   kal_uint8                cn:  Connection Record Index 
+ *
+ * Returns:          None
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+void vscCpcIdleConnInd(ServiceConfiguration *cfg, kal_uint8 cn);
+
+/***************************************************************************
+ *
+ * Function Name:      vscGetPrefServCfg
+ *
+ * Description:      Returns the Preferred Service Configuration
+ *
+ * Parameters:       void
+ *
+ * Returns:          ServiceConfiguration *: Pointer to a valid 
+ *                                           ServiceConfiguration.
+ *
+ * Notes:
+ *
+ ****************************************************************************/
+ServiceConfiguration* vscGetPrefServCfg(void); 
+
+/***************************************************************************
+ *
+ * Function Name:    vscCpcInit
+ *
+ * Description:      Initializes per-call global variables
+ *
+ * Parameters:       void
+ *
+ * Returns:          None
+ *
+ ****************************************************************************/
+void vscCpcInit( void );
+
+/****************************************************************************
+ *
+ * Name:          vscGetState 
+ *
+ * Description:   Returns current VSC state.
+ *
+ * Parameters:    None 
+ *
+ * Returns:       UIN8 _fsm.state 
+ *
+ *****************************************************************************/
+kal_uint8 vscGetState(void);
+
+kal_bool vscCallRelease(void);
+kal_uint16 vscGetCurrentOrigSo(void);
+
+/***************************************************************************
+ *
+ * Function Name:    vscGetProfile
+ *
+ * Description:      Returns the address of the static structure _profiles.
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          ServCfgParms * - pointer to voice profiles
+ *
+ * Notes:            This is used in support of alternative service options.
+ *
+ ****************************************************************************/
+ServCfgParms *vscGetProfile(void);
+
+/***************************************************************************
+ *
+ * Function Name:    vscSetSO73WBEnabled
+ *
+ * Description:      
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          
+ *
+ * Notes:            
+ *
+ ****************************************************************************/
+void vscSetSO73WBEnabled(kal_bool Enabled);
+
+/***************************************************************************
+ *
+ * Function Name:    vscGetSO73WBEnabled
+ *
+ * Description:      
+ *
+ * Parameters:       (none)
+ *
+ * Returns:          
+ *
+ * Notes:            
+ *
+ ****************************************************************************/
+kal_bool vscGetSO73WBEnabled(void);
+#ifdef __SENSITIVE_DATA_MOSAIC__ 
+void sccVscSensitiveClean(void);
+#endif
+#endif /* _SCC_VSC_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Serv_cfg.h b/mcu/interface/protocol/as_c2k/1xrtt/Serv_cfg.h
new file mode 100644
index 0000000..e9f30bc
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Serv_cfg.h
@@ -0,0 +1,558 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   serv_cfg.h - Service Configuration
+ *
+ * Purpose:    Definition of Service Configuration structures and
+ *             supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.4 $
+ *    $Author: blee $
+ *
+ *       $Log: Serv_cfg.h $
+ *
+ *       09 01 2017 lemon.xiong
+ *       [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ *       	
+ *       	ut code
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *       Revision 1.4  2004/10/07 12:43:15  blee
+ *       RLP blob for PREV 9
+ *       Revision 1.3  2004/04/23 10:50:30  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.2.1.2  2004/04/14 15:20:20  asharma
+ *       Revision 1.2  2004/03/25 12:09:04  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2004/02/10 12:50:29  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.20  2003/12/17 09:58:48  mclee
+ *       Add function scNNGetServiceConfiguration()
+ *       Revision 1.19  2003/03/12 16:26:23  byang
+ *       CR #1763: Added symbols for SO32858 and SO32859.
+ *       Revision 1.18  2002/12/30 19:08:54  akayvan
+ *       Per CR570, Cosmetic changes for replacement of
+ *       IS2000A with either IS2000_REV_A or IS2000_REV_0.
+ *       Revision 1.17  2002/08/22 11:07:42  agontar
+ *       Change some static data to be declared constant - CR 1070
+ *       Revision 1.16  2002/06/06 13:14:39  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.15  2002/06/05 16:27:52  byang
+ *       CR #741: Add function prototype declaration for 
+ *       scValidateAlternateRC().
+ *       Revision 1.14  2002/02/15 10:29:46  byang
+ *       Add new data type, RateSetType, to identify different rate set 
+ *       classes.
+ *       
+ *       Revision 1.13  2002/02/14 16:20:51  byang
+ *       Add new service option definitions.
+ *       Revision 1.12  2002/02/01 14:47:54  byang
+ *       Added a new field nnScrIncl to ServiceConfiguration.  This flag
+ *       is set when the SCR and NNSCR were included in the same
+ *       overhead message (i.e. SCM, GHDM, UHDM).
+ *       Revision 1.11  2001/11/20 12:33:28  mclee
+ *       Add SO for OTAPA
+ *       Revision 1.10  2001/11/13 17:45:55  byang
+ *       Define strict data types for SCH portion of Service Configuration.
+ *       Revision 1.9  2001/10/23 15:51:27  byang
+ *       Added support for SO32 and SO55.
+ *       Revision 1.8  2001/08/30 15:02:28  byang
+ *       Updated Service Configuration data structure to conform to 
+ *       IS2000 Rev.0 definition.
+ *       Revision 1.7  2001/08/14 11:57:49  hhong
+ *       Add SO33
+ *       Revision 1.6  2001/08/06 13:54:19  akayvan
+ *       #define SERVICE_OPTION_54 added.
+ *       Revision 1.5  2001/07/02 14:10:30  kmar
+ *       Update SCC and SMS to CBP3 v360.
+ *       Added #define for SMS Service Options
+ *       Revision 1.4  2001/05/22 11:19:02  yfang
+ *       supported SO4100 data call
+ *       Revision 1.3  2001/04/11 09:58:40  akayvan
+ *       Updated ServiceConfiguration structure for supplemental channel
+ *       fields per IS2K Rev0 compliance.
+ *       Revision 1.2  2001/03/16 11:34:55  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.1  2001/01/17 10:59:24  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/11/27 13:15:20  chinh
+ *       Added new functions to support Access State for IS2000
+ *       Revision 1.1.1.2  2000/11/11 01:26:54Z  chinh
+ *       Added new function prototypes and enums to support Access Mode for IS2000
+ *       Revision 1.1.1.1  2000/10/24 21:11:27Z  chinh
+ *       Duplicate revision
+ *       Revision 1.1  2000/10/24 21:11:27Z  fpeng
+ *       Initial revision
+ *       Revision 1.5  2000/08/23 22:11:23Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.4  2000/07/27 01:29:08Z  hhong
+ *       To add defines for SO=7 and 15
+ *       Revision 1.3  2000/03/09 23:44:57Z  dstecker
+ *       Added Markov Service Option
+ *       Revision 1.2  2000/03/01 18:15:55Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.15  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.14  1999/03/03 19:45:52  mhayduk
+ *       Defined default service option as that from custom.h.
+ *
+ *       Revision 1.13  1999/01/26 18:51:48  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.12  1999/01/09 00:36:06  scotvold
+ *       Changed MultiplexOptionRec to pointer.
+ *
+ *       Revision 1.11  1998/11/20 16:46:57  scotvold
+ *       Fixed typo in define.
+ *
+ *       Revision 1.10  1998/11/02 22:13:40  scotvold
+ *       Added Service Option/Multiplex Option record support.
+ *
+ *       Revision 1.9  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.8  1998/07/14 17:26:09  scotvold
+ *       Service Configuration Initiation support.
+ *
+ *       Revision 1.7  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.6  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1998/02/18  16:54:33  mhayduk
+ * Initial revision
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _SERV_CFG_H_
+
+#define _SERV_CFG_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "custom.h"
+/*AKK 11-20-00 Added per LMD_SERVICE_CONFIG_NN_MSG*/ 
+#include "lmdapi.h"
+/*END--AKK 11-20-00 Added per LMD_SERVICE_CONFIG_NN_MSG */
+#include "pswairmsg.h"
+#include "pswapi.h"
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+#define FUNDAMENTAL_CODE_CHANNEL  0
+
+typedef enum
+{
+    SC_VALIDATE_PROPOSE     = 0,
+    SC_VALIDATE_ONLY        = 1
+
+} SCValidationAction;
+
+/* Service configuration defintions */
+
+typedef enum
+{
+  RS1_9600 = 0x80,
+  RS1_4800 = 0x40,
+  RS1_2400 = 0x20,
+  RS1_1200 = 0x10,
+  RS1_RSVD = 0x0F
+} RateSet1;
+
+
+typedef enum
+{
+  RS2_14400 = 0x80,
+  RS2_7200  = 0x40,
+  RS2_3600  = 0x20,
+  RS2_1800  = 0x10,
+  RS2_RSVD  = 0x0F
+} RateSet2;
+
+typedef enum
+{
+  RATE_SET_INVALID,
+  RATE_SET_1_CLASS_1,   /* RC 1 */
+  RATE_SET_2_CLASS_1,   /* RC 2 */
+  RATE_SET_1_CLASS_2,   /* RC 3 or RC 5*/
+  RATE_SET_2_CLASS_2,   /* RC 4 or RC 6 */
+  RATE_SET_1_CLASS_3    /* RC 8 */
+ } RateSetType;
+
+typedef enum
+{
+  GM_DEFAULT_CONFIG_NEG_BEFORE_SERVICE_CONNECT,
+  GM_SERVICE_OPTION_CONFIG_NEG_BEFORE_SERVICE_CONNECT,
+  GM_SERVICE_OPTION_CONFIG_NO_NEG,
+  GM_USE_STORED_SERVICE_CONFIG
+} GrantedMode;
+
+
+typedef enum
+{
+  DC_MUX_OPTION1_RATE_SET1,
+  DC_MUX_OPTION2_RATE_SET2
+/*AKK 12-30-02 per CR#570 Replaced IS2000A with IS2000_REV_0*/
+#ifdef IS2000_REV_0
+  ,DC_FOR_MUX1RC1_REV_MUX2RC2
+  ,DC_FOR_MUX2RC2_REV_MUX1RC1
+  ,DC_FOR_REV_MUXRC
+#endif
+} DefaultConfig;
+
+
+
+typedef enum
+{
+  FOR_TRANS_RATE_ONE        = 0x8,
+  FOR_TRANS_RATE_HALF       = 0x4,
+  FOR_TRANS_RATE_QUARTER    = 0x2,
+  FOR_TRANS_RATE_EIGHTH     = 0x1
+
+} TransmissionRates;
+
+
+/*****************************************************************************
+ * Service Configuration structure definitions
+ ****************************************************************************/
+
+#define CP_MAX_ROUNDS_FWD       7
+#define CP_MAX_ROUNDS_REV       7
+
+#define CP_MAX_NUM_FOR_SCH      2
+#define CP_MAX_NUM_REV_SCH      2
+
+/* AKK 08-22-00 added NN serv cfg record */
+/*AKK 12-30-02 per CR#570 Replaced IS2000A with IS2000_REV_0*/
+#ifdef IS2000_REV_0
+typedef struct
+{
+  kal_uint8            forSchId;
+  kal_uint8            forSchFrameOffset;
+} ForSupCh;
+
+typedef struct
+{
+  kal_uint8            revSchId;
+  kal_uint8            revSchFrameOffset;
+} RevSupCh;
+
+#define CP_MAX_FOR_SUP_CH_REC 4
+#define CP_MAX_REV_SUP_CH_REC 4
+
+/* AKK 07-31-00 IS2000A*/
+typedef struct
+{
+  kal_uint8   srId;
+  kal_uint8   logicalResource; 
+  kal_uint8   physicalResource; 
+  kal_bool    forwardFlag; 
+  kal_bool    reverseFlag; 
+  kal_uint8   priority;
+} LPM;
+/*END-- AKK 07-31-00 IS2000A*/
+
+typedef struct
+{
+  kal_uint8   recordLen;
+  kal_uint8   srId; 
+  kal_bool    sdbSoOmit; 
+} SrvOptConType;
+
+typedef struct
+{
+  kal_uint8   numBitsIdx[16];
+  kal_uint16  numBits[16];
+  kal_uint8   crcLenIdx[16];
+} FlexRateRecType2;
+
+typedef struct
+{
+  kal_uint8   numBitsTableId[8];
+  kal_uint8   numRecs[8];
+  FlexRateRecType2 flexRateRec2[8]; 
+} FlexRateRecType;
+
+
+typedef struct
+{
+  kal_uint8   numBitsIdx[16];
+  kal_uint16  mask[16];
+} VarRateRecType2;
+
+typedef struct
+{
+  kal_uint8   varRateTableId[8];
+  kal_uint8   numRecs[8];
+  VarRateRecType2 varRateRec2[8];
+} VarRateRecType;
+
+typedef struct
+{
+  kal_uint8   nBitsIdx[16];
+  kal_uint8   numLtus[16];
+} LtuRecType2;
+
+typedef struct
+{
+  kal_uint8       ltuTableId[4];
+  kal_uint8       numRows[4];
+  LtuRecType2 ltuRec2[4];
+/*  kal_uint8   nBitsIdx[4][16];
+  kal_uint8   numLtus[4][16];
+  kal_uint8   ltuLen[4][16];*/
+} LtuRecType;
+			
+typedef struct
+{
+  kal_uint8   srId[8];
+  kal_uint16  srvNumBits[8];
+} ParTabRecType3;
+
+typedef struct
+{
+  kal_uint8   category[32];
+  kal_uint8   muxHeaderLen[32];
+  kal_uint8   muxHeader[32];
+  kal_uint8   numPartitions[32];
+  ParTabRecType3 parTabRec3[32];
+} ParTabRecType2;
+
+typedef struct
+{
+  kal_uint8   partitionTablesId[4];
+  kal_uint8   numRows[4];
+  ParTabRecType2 parTabRec2[4];
+} ParTabRecType;
+
+
+typedef struct
+{
+  /*AKK 11-17-00 Added per L1D_SERVICE_CONFIG_NN_MSG */
+  kal_bool 	   fpcIncl;
+  kal_bool	   fpcPriChan;			/* valid only if fpc_incl = 1 */
+  kal_uint8	   fpcMode;				/* valid only if fpc_incl = 1 */
+  kal_bool	   fpcOlpcFchIncl;
+  kal_uint8    fpcFchFer;			/* valid only if fpc_olpc_fch_incl = 1 */
+  kal_uint8    fpcFchMinSetPt;		/* valid only if fpc_olpc_fch_incl = 1 */
+  kal_uint8    fpcFchMaxSetPt;		/* valid only if fpc_olpc_fch_incl = 1 */
+  kal_bool	   fpcOlpcDcchIncl;			
+  kal_uint8    fpcDcchFer;			/* valid only if fpc_olpc_dcch_incl = 1 */
+  kal_uint8    fpcDcchMinSetPt;	    /* valid only if fpc_olpc_dcch_incl = 1 */
+  kal_uint8    fpcDcchMaxSetPt;	    /* valid only if fpc_olpc_dcch_incl = 1 */
+  kal_bool	   gatingRateIncl;		
+  kal_uint8    pilotGatingRate;		/* valid only if gating_rate_incl = 1 */
+  /*END--AKK 11-17-00 Added per L1D_SERVICE_CONFIG_NN_MSG */
+  kal_bool     forSchIncl;
+  kal_uint8    numForSch;
+  ForSupCh forSch[CP_MAX_FOR_SUP_CH_REC]; /* serv opt conn recs  */
+  kal_bool     revSchIncl;
+  kal_uint8    numRevSch;
+  RevSupCh revSch[CP_MAX_REV_SUP_CH_REC]; /* serv opt conn recs  */
+  kal_uint8    lpmInd;
+  /*AKK 11-17-00 Added per LMD_SERVICE_CONFIG_NN_MSG */
+  kal_uint8    numLpmEntries;
+  LPM      logicalToPhysicalMappingTable[MAX_LPM_ENTRIES];
+#ifndef REMOVE_IS2000_REL_A
+  kal_uint8    numRec;
+  SrvOptConType serviceOptionConn[8];
+  kal_bool     useFlexNumBits;
+  kal_bool     numBitsTablesIncl;
+  kal_uint8    numBitsTablesCount;
+  FlexRateRecType flexRateRec;
+  kal_bool     useVarRate;
+  kal_uint8    varRateTablesCount;
+  kal_bool     varTablesIncl;
+  VarRateRecType varRateRec;
+  kal_bool     useOldFlexMapping;
+  kal_uint8    fsch0NbitTableId;
+  kal_uint8    rsch0NbitTableId;
+  kal_uint8    fsch1NbitTableId;
+  kal_uint8    rsch1NbitTableId;
+  kal_uint8    ffchNbitTableId;
+  kal_uint8    rfchNbitTableId;
+  kal_uint8    fdcchNbitTableId;
+  kal_uint8    fdcchNbitsIdx;
+  kal_uint8    rdcchNbitTableId;
+  kal_uint8    rdcchNbitsIdx;
+  kal_bool     useOldVarMapping;
+  kal_uint8    fsch0VarTableId;
+  kal_uint8    rsch0VarTableId;
+  kal_uint8    fsch1VarTableId;
+  kal_uint8    rsch1VarTableId;
+  kal_bool     rIncRateAllowed;
+  kal_bool     fIncRateAllowed;
+  kal_bool     ltuInfoIncl;
+  kal_bool     ltuTablesIncl;
+  kal_uint8    numLtuTables; 
+  LtuRecType   ltuRec;
+  kal_bool     useOldLtuMapping;
+  kal_uint8    fsch0LtuTabId;
+  kal_uint8    rsch0LtuTabId;
+  kal_uint8    fsch1LtuTabId;
+  kal_uint8    rsch1LtuTabId;
+  kal_bool     partitionTablesInfoIncl;
+  kal_bool     partitionTablesIncl;
+  kal_uint8    numPartitionTables;
+  ParTabRecType     parTabRec;
+  kal_bool     useOldPartMapping;
+  kal_uint8    ffchPartTabId;
+  kal_uint8    rfchPartTabId;
+  kal_uint8    fdcchPartTabId;
+  kal_uint8    rdcchPartTabId;
+  kal_bool     useEram;
+  kal_bool     switchingParamsIncl;
+  kal_uint8    numSoftSwitchingFramesChm;
+  kal_uint8    numSofterSwitchingFramesChm;
+#endif
+  } NNServiceConfiguration;
+#endif
+/*END--AKK 08-22-00 added NN serv cfg record */
+
+/* Service Option Information Element */
+typedef struct
+{
+  kal_uint16  serviceOption;
+  kal_bool    forwardSupport;
+  kal_bool    reverseSupport;
+  kal_uint8   defaultNegMode;
+} ServiceOptionRec;
+
+/* Service Option Information Record */
+typedef struct
+{
+  kal_uint8   numServiceOption;
+  const ServiceOptionRec* rec;
+} ServiceOptionInfo;
+
+
+/* Multiplex Option Information Element */
+typedef struct
+{
+  kal_uint16  multiplexOption;
+  /*AKK 11-16-00 Modified for LMD_SERVICE_CONFIGURATION_MSG*/  
+  kal_uint8   forNumBits;
+  kal_uint8   revNumBits;
+  /*END--AKK 11-16-00 Modified for LMD_SERVICE_CONFIGURATION_MSG*/  
+} MultiplexOptionRec;
+
+/* Multiplex Option Information Record */
+typedef struct
+{
+  kal_uint8   numMultiplexOption;
+  const MultiplexOptionRec* rec;
+} MultiplexOptionInfo;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+ServiceConfiguration* scGetServiceConfiguration (void);
+ServiceConfiguration* scGetPendingServiceConfiguration (void);
+void   scSetServiceConfiguration       (ServiceConfiguration* serviceConfig);
+NNServiceConfiguration* scGetNNServiceConfiguration (void);
+void   scSetPendingServiceConfiguration(ServiceConfiguration* serviceConfig);
+/*AKK 11-22-00 Per L1D/LMD_SERVICE_CONFIG_NN_MSG*/
+void   scSetPendingNNServiceConfiguration(NNServiceConfiguration* serviceConfig);
+void   scSetNNServiceConfiguration       (NNServiceConfiguration* serviceConfig);
+NNServiceConfiguration* scGetPendingNNServiceConfiguration (void);
+/*END--AKK 11-22-00 Per L1D/LMD_SERVICE_CONFIG_NN_MSG*/
+void   scSetInitialServiceConfiguration (kal_bool servNeg,
+                                         GrantedMode grantedMode,
+                                         DefaultConfig defaultConfig);
+kal_uint16 scGetServiceOption (void);
+void   scSetServiceOption (kal_uint16 serviceOption);
+GrantedMode scGetGrantedModeS (void);
+kal_bool   scFindConnection (kal_uint8 conRef, kal_uint16 serviceOption, kal_bool checkPending);
+kal_bool   scServiceOptionConnection (void);
+void   scDeleteNonPrimaryConnections (void);
+kal_uint16 scServiceOptionValidation (kal_uint16 serviceOption);
+kal_bool   scDefaultConfigValidation (DefaultConfig defaultConfig);
+void   scSetPendingServCfgWithConnection (kal_uint16 serviceOption);
+kal_uint16 scFindServiceOption (TrafficType trafficType);
+/*AKK 12-30-02 per CR#570 Replaced IS2000A with IS2000_REV_0*/
+#ifdef IS2000_REV_0
+kal_bool   cpIsDefaultConfigSupported(DefaultConfig defaultConfig, kal_uint8 forRc, kal_uint8 revRc, kal_uint8 chInd); 
+kal_bool   cpIsDefaultConfigMismatch(DefaultConfig defaultConfig, kal_uint8 forRc, kal_uint8 revRc);
+#endif
+
+kal_bool scValidateAlternateRC
+(
+    const RcTypes defaultForRc,
+    const RcTypes defaultRevRc,
+    const RcTypes alternateForRc,
+    const RcTypes alternateRevRc
+);
+
+#endif  /* _SERV_CFG_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Serv_neg.h b/mcu/interface/protocol/as_c2k/1xrtt/Serv_neg.h
new file mode 100644
index 0000000..1a52458
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Serv_neg.h
@@ -0,0 +1,227 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     serv_neg.h
+ *
+ * Purpose:    Header file for serv_neg.c
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: Serv_neg.h $
+ *
+ *       09 01 2017 lemon.xiong
+ *       [MOLY00267484] [BIANCO][MT6763][C2K]coverity warning fix
+ *       	
+ *       	ut code
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:05  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:04  fpeng
+ *       Initial revision
+ *       Revision 1.5  2002/06/06 13:14:44  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.4  2002/04/23 16:50:17  dstecker
+ *       Added action_time parameter to snSHCNM & snNNSHCNM prototypes
+ *       Revision 1.3  2002/03/18 11:46:00  dstecker
+ *       Added snNNSHCNM prototype
+ *       Revision 1.2  2001/08/03 15:15:28  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.1  2001/01/17 10:59:25  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:27  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:11:26Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:16:00Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.15  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.14  1999/09/09 23:36:54  scotvold
+ *       The Origination Continuation message is sent upon entry to
+ *       the Conversation State to meet spec requirements. It was
+ *       sent after reception of Service Connect, however this is
+ *       too late.
+ *
+ *       Revision 1.13  1999/02/22 05:37:12  scotvold
+ *       Minor change.
+ *
+ *       Revision 1.12  1999/02/05 02:26:25  scotvold
+ *       Added Origination Continuation support.
+ *
+ *       Revision 1.11  1999/01/26 18:52:02  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.10  1999/01/09 00:36:51  scotvold
+ *       Added service option to Req/Resp calls.
+ *
+ *       Revision 1.9  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.8  1998/10/16 17:11:23  scotvold
+ *        Made ftcOrderData global.
+ *
+ *       Revision 1.7  1998/09/11 19:44:33  scotvold
+ *       Service Negotiation Mode Initialization routine.
+ *
+ *       Revision 1.6  1998/09/11 02:40:23  scotvold
+ *       Added return to Service Option Control API calls.
+ *
+ *       Revision 1.5  1998/07/20 23:23:23  scotvold
+ *       Added state machine trace support.
+ *
+ *       Revision 1.4  1998/07/14 17:25:39  scotvold
+ *       Service Configuration Initiation support.
+ *
+ *       Revision 1.3  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.2  1998/03/30 23:26:03  mhayduk
+ *       Release 0.03.
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _SERV_NEG_H_
+
+  #define _SERV_NEG_H_ 1
+  
+/*****************************************************************************
+* Includes
+****************************************************************************/
+#include "pswapi.h"
+
+
+/****************************************************************************
+ * Defines
+ ****************************************************************************/
+typedef enum
+{
+  SN_STOPPED_ST,
+  SN_SO_NEGOTIATION_ST,
+  SN_NORMAL_SERVICE_ST,
+  SN_WAITING_FOR_SERVICE_RESPONSE_MESSAGE_ST,
+  SN_WAITING_FOR_SERVICE_REQUEST_MESSAGE_ST,
+  SN_WAITING_FOR_SERVICE_CONNECT_MESSAGE_ST,
+  SN_WAITING_FOR_SERVICE_ACTION_TIME_ST,
+  SN_MAX_STATES
+} ServNegState;
+
+
+typedef enum
+{
+  SN_SERV_NEG_DISABLED_EV,
+  SN_SERV_NEG_ENABLED_EV,
+  SN_USER_NEW_SERV_CFG_REQ_EV,
+  SN_SERVICE_REQUEST_MESSAGE_PROPOSE_EV,
+  SN_SERVICE_REQUEST_MESSAGE_REJECT_EV,
+  SN_SERVICE_RESPONSE_MESSAGE_PROPOSE_EV,
+  SN_SERVICE_RESPONSE_MESSAGE_REJECT_EV,
+  SN_SERVICE_CONNECT_MESSAGE_EV,
+  SN_SERVICE_CONNECT_MESSAGE_NO_ACTION_TIME_EV,
+  SN_SERVICE_CONNECT_MESSAGE_REJECTED_EV,
+  SN_SERVICE_OPTION_CONTROL_MESSAGE_EV,
+  SN_SERVICE_OPTION_REQUEST_ORDER_EV,
+  SN_SERVICE_OPTION_RESPONSE_ORDER_EV,
+  SN_SERVICE_OPTION_CONTROL_ORDER_EV,
+  SN_SERV_NEG_ACTION_TIMEOUT_EV,
+  SN_SERV_NEG_SUBFUNCTION_TIMEOUT_EV,
+  SN_MAX_EVENTS
+} ServNegEvent;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+kal_bool snGetServNegS (void);
+void snSetInitialServNegS (kal_bool servNegS);
+void snSetServNegS (kal_bool servNegS);
+void snSetSOReqS   (kal_uint16 serviceOptionRequested);
+kal_uint8 snGetServConSeq(void);
+
+void snInitiateServiceNegotiation (void);
+ServNegState snGetServNegState (void);
+void snStartServiceNegotiation (ServNegState servNegState);
+void snStopServiceNegotiation  (void);
+void snNegotiateNewServCfg (ServiceConfiguration* serviceConfiguration);
+void snServiceRequestAck (void);
+void snServiceControl (kal_uint8 conRef, kal_uint16 serviceOption, kal_uint8 length,
+                       kal_uint8* ctlRec);
+void snServiceControlAck (void);
+
+void snSRQM (SRQMData* data);
+void snSRPM (SRPMData* data);
+void snSCNM (SCNMData* data);
+void snSHCNM (ServiceConfiguration* servCfg, kal_uint8 servConSeq, WbiosSystime* actionTime);
+void snSOCM (SOCMFTCData* data);
+void snNNSHCNM (NNServiceConfiguration* serviceConfig, WbiosSystime* actionTime);
+
+void snServiceNegotiationActionTimeout      (void);
+void snServiceNegotiationSubfunctionTimeout (void);
+void snServiceConfigurationIndication (void);
+
+void snNegotiateNewServOption(kal_uint16 serviceOption);
+void snServiceOptionRequestAck (void);
+
+void snSORQO (kal_uint16 serviceOption);
+void snSORPO (kal_uint16 serviceOption);
+void snSOCO  (void);
+
+void snServiceOptionReqRespOrderTimeout (void);
+
+#endif  /* _SERV_NEG_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/Tc_unf.h b/mcu/interface/protocol/as_c2k/1xrtt/Tc_unf.h
new file mode 100644
index 0000000..f62e58b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/Tc_unf.h
@@ -0,0 +1,220 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     tc_unf.h
+ *
+ * Purpose:    Header file for tc_unf.c
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.5 $
+ *    $Author: wfu $
+ *
+ *       $Log: Tc_unf.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.5  2005/08/02 16:28:12  wfu
+ *       - add the functional prototype for unfPCNM()
+ *       Revision 1.4  2005/04/06 16:27:44  dstecker
+ *       Release A mods
+ *       Revision 1.3  2004/04/23 10:50:42  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.2.1.2  2004/04/14 15:20:30  asharma
+ *       Revision 1.2  2004/03/25 12:09:10  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:20:14  bcolford
+ *       Update for merge.
+ *       Revision 1.8  2003/05/21 17:13:54  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.7  2002/10/28 10:07:13  byang
+ *       Modified the return data type for unfERM().
+ *       Revision 1.6  2002/10/18 15:50:51  dstecker
+ *       Added prototype
+ *       Revision 1.5  2002/06/06 13:15:42  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.4  2001/11/13 17:51:02  byang
+ *       Added function prototype declaration for ESCAM, RAM,
+ *       and ERM.
+ *       Revision 1.3  2001/09/07 18:10:50  akayvan
+ *       Updated declaration for unfPCNM() per FPC.
+ *       Revision 1.2  2001/08/03 15:15:46  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.1  2001/01/17 10:59:42  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:35  fpeng
+ *       Initial revision
+ *       Revision 1.4  2000/08/31 23:41:46Z  bcolford
+ *       Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *       Revision 1.3  2000/08/23 22:11:51Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:16:32Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.14  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.13  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.12  1999/02/22 05:44:16  scotvold
+ *       Added success/fail return to unfExtHandoffDirection.
+ *
+ *       Revision 1.11  1999/02/20 00:39:52  scotvold
+ *       Added message encryption support.
+ *
+ *       Revision 1.10  1999/02/10 01:49:59  scotvold
+ *       Changed return types to kal_bool.
+ *
+ *       Revision 1.9  1999/02/08 22:57:20  scotvold
+ *       Changed Alert/Flash and Status Request interface.
+ *
+ *       Revision 1.8  1998/12/02 00:12:02  scotvold
+ *       Removed unfRetrieveParameters(), unfSetParameters().
+ *
+ *       Revision 1.7  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.6  1998/10/16 17:13:55  scotvold
+ *       Made ftcOrderData global.
+ *
+ *       Revision 1.5  1998/09/11 02:41:13  scotvold
+ *       Added successful return to unfExtNeighbourListUpdate().
+ *
+ *       Revision 1.4  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.3  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.2  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _TC_UNF_H_
+
+#define _TC_UNF_H_ 1
+
+#include "Msg_defn.h"
+#include "layer2.h"
+
+/* Bitmap for extension records included in GEM */
+#define FWD_GE_REV_CHANNEL_INFO_REC_INC   0x0001
+#define FWD_GE_RADIO_CFG_PARMS_REC_INC    0x0002
+#define FWD_GE_DELAYED_ARQ_REC_INC        0x0004
+
+typedef struct
+{
+   kal_uint16            recIncluded; /* Bitmap for valid extension records in this structure */
+   RevChannelInfoRec revChannelInfo;
+   RCPMData          radioConfigParms;
+   DelayedARQInfoRec delayedARQInfo;
+} FwdGEMRecords;
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+kal_bool unfORDM   (FTCMessage* msg, FTCORDMData* data);
+kal_bool unfAUCM   (FTCMessage* msg, kal_uint32* randu);
+kal_bool unfAWIM   (FTCMessage* msg, FORInfoData* data);
+kal_bool unfDBM    (FTCMessage* msg, DataBurstData* data);
+kal_bool unfHDM    (FTCMessage* msg, HDMData* hdmDataP);
+kal_bool unfITSPM  (FTCMessage* msg, ITSPMData* data);
+kal_bool unfNLUM   (FTCMessage* msg, NLUMUData* data);
+kal_bool unfBDTMFM (FTCMessage* msg, BDTMFMData* data);
+kal_bool unfPCNPM  (FTCMessage* msg, PCNPMData* data);
+kal_bool unfSSDUM  (FTCMessage* msg, kal_uint8* randssd);
+kal_bool unfFWIM   (FTCMessage* msg, FORInfoData* data);
+kal_bool unfMSRM   (FTCMessage* msg, MSRegisteredData* msRegisteredData);
+kal_bool unfSTRQM  (FTCMessage* msg, StatusReqData* statusReqData);
+kal_bool unfEHDM   (FTCMessage* msg, HDMData* hdmDataP);
+kal_bool unfSRQM   (FTCMessage* msg, SRQMData* data);
+kal_bool unfSRPM   (FTCMessage* msg, SRPMData* data);
+kal_bool unfSCNM   (FTCMessage* msg, SCNMData* data);
+kal_bool unfSOCM   (FTCMessage* msg, SOCMFTCData* data);
+kal_bool unfTASM   (FTCMessage* msg, TMSIAssignData* tmsiAssignData);
+kal_bool unfSRDM   (FTCMessage* msg, ServiceRedirData* servRedirData);
+kal_bool unfSCAM   (FTCMessage* msg, SCAMData* scamData);
+/*AKK 01-25-01 Modified per phase2 forward power control reqs*/ 
+kal_bool unfPCNM   (FTCMessage* msg);
+/*END--AKK 01-25-01 Modified per phase2 forward power control reqs*/ 
+/*Radio Configuration Parameter Message*/
+kal_bool unfRCPM   (FTCMessage* msg);
+/*END*/
+
+kal_bool unfENLUM  (FTCMessage* msg, NLUMUData* data);
+kal_bool unfCFSRQM (FTCMessage* msg, CFSRQMData* data);
+kal_bool unfCFSCNM (FTCMessage* msg, CFSCNMData* data);
+kal_bool unfGHDM   (FTCMessage* msg, HDMData* hdmDataP);
+#ifdef IS2000_REV_0
+kal_bool         unfRAM    (FTCMessage* pMsg, RAMData* pRAMData);
+RejectReason unfERM    (FTCMessage* pMsg, ERMData* pERMData);
+kal_bool         unfUHDM   (FTCMessage* msg, HDMData* hdmDataP);
+kal_bool         unfESCAM  (FTCMessage* pMsg, ESCAMData* pEscamData);
+RejectReason unfRATCHGM(FTCMessage* pMsg, RATCHGMData* pRatchgmData);
+kal_bool unfEAWIM (FTCMessage* msg, ExtFORInfoData * data);
+kal_bool unfEFWIM (FTCMessage* msg, ExtFORInfoData * data);
+#endif
+
+void unfDecrypt  (kal_uint8* buffer, kal_uint16* index, kal_uint8 numBytesDec);
+kal_bool unfCheckEOO (FTCMessage* msg, kal_uint16 index);
+void cpSetPwrCntlStep(kal_uint8 pwrCntlStep);
+kal_uint16 cpExtensionRecordsIncluded(void);
+RCPMData* cpGetGERecRadioConfigParms(void);
+void cpUpdateStoredRCPMParams(RCPMData* pUpdatedParms);
+FwdGEMRecords* cpGetGEMRecords(void);
+
+#endif  /* _TC_UNF_H_ */
+
+/**Log information: \main\CBP80\cbp80_cshen_scbp10097\1 2012-07-25 06:23:22 GMT cshen
+** cbp80_cshen_scbp10097**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ach_msg.h b/mcu/interface/protocol/as_c2k/1xrtt/ach_msg.h
new file mode 100644
index 0000000..6889a25
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ach_msg.h
@@ -0,0 +1,364 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     ach_msg.h
+ *
+ * Purpose:    Header file containing structures for Access Channel
+ *             Messages.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.3 $
+ *    $Author: dstecker $
+ *
+ *       $Log: ach_msg.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 18 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	Fix HSC code release build error and 1xRTT OTA message parse
+ *       Revision 1.3  2004/04/06 14:01:59  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:15  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:26  fpeng
+ *       Initial revision
+ *       Revision 1.3  2002/06/06 13:10:20  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/11/20 12:26:00  mclee
+ *       include pswnam.h
+ *       Revision 1.1  2001/01/17 10:57:59  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:00  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:05:04Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes
+ *       Revision 1.6  1998/11/24 05:40:36  mhayduk
+ *       Cleaned up definitions for checking of TMSI Zone length -
+ *       max zone size is 8.
+ *
+ *       Revision 1.5  1998/05/27 17:16:28  scotvold
+ *       Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/08  19:26:45  mhayduk
+ * Added defintion of last message type for access channel.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _ACH_MSG_H_
+
+  #define _ACH_MSG_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "imsi.h"
+#include "pswnam.h"
+#include "Msg_defn.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+  #define MAX_ACCESS_MSG_SIZE   111   /* 880 bits, refer to Fig. 6.7.1.1-2 */
+
+
+  #define MAX_MSID_LEN         15   /* maximum length of 15 octets for MSID */
+  #define MAX_ACCESS_ADD_PILOT 6    /* max number of additional pilot recs  */
+
+  #define EACH_MSG_LENGTH_8_TO_16       978  
+  #define CP_ACH_RECONN_MESSAGE         CP_ACH_RECONNECT      
+/*****************************************************************************
+ * Access Channel Message structures as defined in section 6.7.1.
+ ****************************************************************************/
+
+  /* MSID_TYPE structures - 6.7.1.3.1.1 */
+  /*====================================*/
+  typedef struct
+  {
+    kal_uint32 min1;
+    kal_uint16  min2;
+    kal_uint32 esn;
+  } AcessMsgHdrIMSI_S_ESN;
+
+  typedef struct
+  {
+    kal_uint8 imsiClass;
+    IMSIType imsi;
+  } AcessMsgHdrIMSI;
+
+  typedef struct
+  {
+    kal_uint32 esn;
+    kal_uint8 imsiClass;
+    IMSIType imsi;
+  } AcessMsgHdrIMSI_ESN;
+
+  typedef struct
+  {
+    kal_uint32 TMSI_CODE;              /* operation TMSI code            */
+    kal_uint8  TMSI_ZONE[CP_MAX_TMSI_ZONE_LEN]; /* TMSI zone           */
+  } AcessMsgHdrTMSI;
+
+  /* Common message header */
+  /*=======================*/
+  typedef struct
+  {
+    kal_uint8 msgType;
+    kal_uint8 ackSeq;
+    kal_uint8 msgSeq;
+    kal_bool ackReq;
+    kal_bool validAck;
+    kal_uint8 ackType;
+    kal_uint8 msidType;
+    kal_uint8 msidLen;
+    union
+    {
+      kal_uint32                 esn;
+      AcessMsgHdrIMSI_S_ESN imsiSEsn;
+      AcessMsgHdrIMSI       imsi;
+      AcessMsgHdrIMSI_ESN   imsiEsn;
+      AcessMsgHdrTMSI       tmsi;
+    } msid;
+  } AccessMsgHdr;
+
+  /* Common Pilot Additional Pilot Record Fields */
+  typedef struct
+  {
+    kal_uint16 pilotPNPhase;
+    kal_uint8 pilotStrength;
+    kal_bool accessHoEn;
+    kal_bool accessAttempted;
+  } AccessAddPilotRec;
+
+  /* Common Pilot Measurement Fields */
+  typedef struct
+  {
+    kal_uint8 pilotStrength;
+    kal_bool firstIsActive;
+    kal_bool firstIsNta;
+    kal_uint8 numAddPilots;
+    AccessAddPilotRec pilot[MAX_ACCESS_ADD_PILOT];
+  } AccessPilotFields;
+
+  /* Registration Message */
+  /*======================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 authMode;
+    kal_uint32 authr;
+    kal_uint8 randc;
+    kal_uint8 count;
+    kal_uint8 regType;
+    kal_uint8 slotCycleIndex;
+    kal_uint8 mobPRev;
+    kal_uint8 scm;
+    kal_bool mobTerm;
+    kal_uint8 returnCause;
+    AccessPilotFields pilots;
+  } AccessRegistration;
+
+  /* Order Message */
+  /*===============*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 order;
+    kal_uint8 addRecordLen;
+    /* Order specific fields */
+    union
+    {                          /* Order-specific fields */
+      struct
+      {
+        kal_uint8  ordq;
+        kal_uint32 randbs;
+      } s1;
+      struct
+      {
+        kal_uint8 ordq;
+        kal_uint8 rejectedType;
+      } s2;
+      struct
+      {
+        kal_uint8 rejectedOrder;
+        kal_uint8 rejectedOrdq;
+      }s3;
+      kal_uint16 rejectedParamId;
+      kal_uint8 rejectedRecord;
+    } u;
+    AccessPilotFields pilots;
+  } AccessOrder;
+
+
+  /* Data Burst Message */
+  /*====================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 auth_mode;
+    kal_uint32 authr;
+    kal_uint8 randc;
+    kal_uint8 count;
+    kal_uint8 msgNumber;
+    kal_uint8 burstType;
+    kal_uint8 numMsgs;
+    kal_uint8 numFields;
+    kal_uint8 *data;
+    AccessPilotFields pilots;
+  } AccessDataBurst;
+
+  /* Origination Message */
+  /*=====================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 authMode;
+    kal_uint32 authr;
+    kal_uint8 randc;
+    kal_uint8 count;
+    kal_bool mobTerm;
+    kal_uint8 slotCycleIndex;
+    kal_uint8 mobPRev;
+    kal_uint8 scm;
+    kal_uint8 requestMode;
+    kal_bool specialService;
+    kal_uint16 serviceOption;
+    kal_bool pm;
+    kal_bool digitMode;
+    kal_uint8 numberType;
+    kal_uint8 numberPlan;
+    kal_bool moreFields;
+    kal_uint8 numFields;
+    char *chari;          /* For now we only support 4-bit DTMF digits */
+    kal_bool narAnCap;
+    kal_bool pacaReorig;
+    kal_uint8 returnCause;
+    kal_bool moreRecords;
+    kal_uint8 encryptionSupported;
+    AccessPilotFields pilots;
+  } AccessOrigination;
+
+  /* Page Response Message */
+  /*=======================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 authMode;
+    kal_uint32 authr;
+    kal_uint8 randc;
+    kal_uint8 count;
+    kal_uint8 mobTerm;
+    kal_uint8 slotCycleIndex;
+    kal_uint8 mobPRev;
+    kal_uint8 scm;
+    kal_uint8 requestMode;
+    kal_uint16 serviceOption;
+    kal_bool pm;
+    kal_bool narAnCap;
+    kal_uint8 encryptionSupported;
+    AccessPilotFields pilots;
+  } AccessPageResponse;
+
+  /* Authentication Challenge Response Message */
+  /*===========================================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint32 authu;
+    AccessPilotFields pilots;
+  } AccessAuthChallenge;
+
+
+  /* Status Response Message - TBD */
+
+  /* TMSI Assignment Completion Message */
+  /*====================================*/
+  typedef struct
+  {
+    AccessMsgHdr header;
+    kal_uint8 authMode;
+    AccessPilotFields pilots;
+  } AccessTMSIAssignComplete;
+
+  /* Access Channel message structure */
+  /*==================================*/
+  typedef struct
+  {
+    kal_uint8 type;                   /* message type */
+    kal_uint8 length;                 /* message length; lenght+body+crc */
+    kal_bool request;                /* KAL_TRUE = request, KAL_FALSE = response */
+    kal_uint16 pilotInfoOffset;        /* pointer into packed buffer where */
+                                 /* pilot info is to start */
+    kal_uint8 buffer[MAX_ACCESS_MSG_SIZE];
+    kal_uint32 crc;
+  } AccessChMessage;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+
+#endif  /* _ACH_MSG_H_ */
+
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/archive.h b/mcu/interface/protocol/as_c2k/1xrtt/archive.h
new file mode 100644
index 0000000..501d292
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/archive.h
@@ -0,0 +1,94 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2003-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+ 
+  FILE NAME:  archive.h
+
+  DESCRIPTION:
+
+
+*****************************************************************************/
+#ifndef ARCHIVE_H
+#define ARCHIVE_H
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pswnam.h"
+#include "cssapi.h"
+#include "cptimer.h"
+/*****************************************************************************/
+/************************ DATA STRUCTURES & DEFINES **************************/
+/*****************************************************************************/
+
+/* ========================================================================= */
+/* ************************ PRL Processing Parameters ********************** */
+/* ========================================================================= */
+kal_bool cpIsPrlValid(void);
+/****************************************************************************
+ * Custom System Selection API Function Prototypes
+ ****************************************************************************/
+
+kal_bool cpIsOtaspSysCurrent(kal_uint8 code, SysCdmaBandT cur_band, kal_uint16 channel);
+void cpSetOtaSystem(SysBandChannelT system);
+SYSTEM_INFO_1X* cpGetOtaSystem(void);
+void cpSetE911mode(kal_bool mode);
+kal_bool cpGetE911mode(void);
+void cpSetOtaspCall(kal_bool mode);
+kal_bool cpGetOtaspCall(void);
+void cpSetReturnCauseByInd(kal_uint8 indication);
+kal_bool cpIsRedirectionEnabled(void);
+kal_bool cpIsSystemRedirectedToValid(void);
+kal_uint8 cpGetRedirectionRecordType(void);
+SysCdmaBandT cpGetRedirectionBand(void);
+kal_uint8 cpGetRedirectionNumChans(void);
+kal_bool cpGetRedirectionSystem(kal_uint16 *channel);
+
+kal_uint16 cpGetPrlListId(void);
+kal_bool cpGetPrlPrefOnly(void);
+
+void cpArchiveReset(void);
+#endif /* ARCHIVE_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/c2k_rsvas.h b/mcu/interface/protocol/as_c2k/1xrtt/c2k_rsvas.h
new file mode 100644
index 0000000..b5bb2a0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/c2k_rsvas.h
@@ -0,0 +1,312 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+/** \file
+ *
+ * Filename:
+ * ---------
+ *   c2k_rsvas.h
+ *
+ * Project:
+ * --------
+ *   C2K
+ *
+ * Description:
+ * ------------
+ * This file defines SRLTE C2K RSVAS variable and functions.
+ *
+ * Author:
+ * -------
+ *
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * $Log$
+ *
+ * 06 29 2018 yanfeng.xu
+ * [MOLY00335749] [MT3967][Eiger][O1][MP1] [Overnight][CAT][MBJ][TDD]Externel (EE),0,0,99,/data/vendor/core/,1,modem,Trigger time:[2018-06-24 13:09:15.473562] md1:(MCU_core1.vpe0.tc0(VPE2)) [ASSERT] file:mcu/protocol/as_multimode/rsva/rsvas/src/rsvas_fsm.c line:3106 p1...
+ *
+ * 05 21 2018 yanfeng.xu
+ * [MOLY00327031] [EIGER][MT3967][RDIT][FT][CT][Overnight][Auto][CAT][SH][SIM1:CT][SIM2:CU]md1:(MCU_core0.vpe0.tc0(VPE0)) [ASSERT] file:mcu/protocol/nas_c2k/css/irat/iratrsvas.c line:1742
+ *
+ * 05 15 2018 tina.ma
+ * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ * 	
+ * 	MSPM feature merge to UMOLYE
+ *
+ * 02 07 2018 emily.dai
+ * [MOLY00299294] [Bianco][N1][SRLTE][MP1.5][L+L][CT 6M C][Performance][FT][GZ]Flight mode delay time long than Huawei mate 10
+ * 	
+ * 	.
+ *
+ * 01 26 2018 emily.dai
+ * [MOLY00299294] [Bianco][N1][SRLTE][MP1.5][L+L][CT 6M C][Performance][FT][GZ]Flight mode delay time long than Huawei mate 10
+ * 	
+ * 	.
+ *
+ * 11 23 2017 yanfeng.xu
+ * [MOLY00289575] [MP1.5][VOLTE][UICC][TC-VoLTETeleComp-01007]²åVOLTEÒÆ¶¯¿¨¿¨1×öÖ÷¿¨£¬VOLTEµçÐÅ¿¨¿¨2×ö¸±¿¨£¬¹Ø±ÕVOLTE£¬¿¨1ÒÆ¶¯¿¨×¢²áLTEÍøÂç¡¢¿¨2µçÐÅ¿¨×¢²á1X£¬´Ëʱ¸±¿¨µçÐÅ¿¨²¹³äÒµÎñ×ßµÄCS¶ø·ÇUT£¬²»·ûºÏµçÐÅÒªÇó
+ *
+ * 08 17 2017 yanfeng.xu
+ * [MOLY00271475] [Bianco][C2K][MP2][1xRTT]srlte enhancement feature merge from CBP.MD.MP5.W1709.DEV
+ * 	
+ * 	.
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 07 04 2017 yanfeng.xu
+ * [MOLY00261290] [BIANCO][MT6763][RDIT][L+L][BringUp]md1:(MCU_core0.vpe1.tc1(VPE1)) [ASSERT] file:mcu/l1core/modem/el1/el1d/src/tx/ltxerrorcheck.c line:132
+ *
+ * 05 17 2017 peijun.zheng
+ * [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ * 	
+ * 	C2k code release.
+ *
+ * 03 21 2017 yanfeng.xu
+ * [MOLY00236690] SIXTH00017091 merge to UMOLYA TRUNK [Kibo+ N1]CMCC card not register network all the time(Once)
+ * 	
+ * 	.
+ *
+ * 02 15 2017 danny.dai
+ * [MOLY00229716] [new feature]C2K EM Develop: 1xL3 and EvL3 module codes
+ * 	
+ * 	L3 EM: 1xrtt and evdo code for EM
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _C2K_RSVAS_H
+#define _C2K_RSVAS_H
+
+#ifdef MTK_DEV_C2K_IRAT
+#include "iratapi.h"
+
+#define RSVAS_SET_BIT(Value, Bitmask)       (Value = Value | Bitmask)
+#define RSVAS_IS_BIT(Value, Bitmask)        (((RSVAS_SERVICE_TYPE_NONE == Value)         \
+                                                &&(Bitmask != RSVAS_SERVICE_TYPE_NONE))? \
+                                            KAL_FALSE:                                       \
+                                            ((Value & Bitmask) == Bitmask))
+#define RSVAS_CLEAR_BIT(Value, Bitmask) do{ \
+  (Value = Value & ~Bitmask);               \
+  if (0x0 == Value)                         \
+  {                                         \
+    Value = RSVAS_SERVICE_TYPE_NONE;        \
+  }                                         \
+}while(0)
+
+typedef enum
+{
+  RSVAS_OCCUPY_EVENT,               /* RSVAS  occupy request  */
+  RSVAS_OCCUPY_IND_EVENT,           /* Receive RSVAS occupy indication from MD1 RSVAS  */
+  RSVAS_RELEASE_EVENT,              /* RSVAS  release request   */
+  RSVAS_RESUME_EVENT,               /* Receive RSVAS resume  request from MD1 RSVAS */
+  RSVAS_VIRTUAL_RESUME_EVENT,       /* Receive RSVAS virtual resume request  from MD1 RSVAS */
+  RSVAS_ABORT_EVENT,                /* Receive RSVAS abort request from MD1 RSVAS  */
+  RSVAS_SUSPEND_EVENT,              /* Receive RSVAS suspend request from MD1 RSVAS */
+  RSVAS_SUSPEND_CNF_EVENT,          /* Receive RSVAS suspend confirm  from CSS */
+  RSVAS_VIRTUAL_SUSPEND_EVENT,      /* Receive RSVAS virtual suspend request from MD1 RSVAS */
+  RSVAS_VIRTUAL_SUSPEND_CNF_EVENT,  /* Receive RSVAS virtual suspend confirm from CSS */
+  RSVAS_VIRTUAL_SUSPEND_COMPLTE_EVENT,  /* Receive RSVAS virtual suspend complete ind from MD1 RSVAS */
+  RSVAS_ABORT_CNF_EVENT,            /* Receive RSVAS abort confirm from HLP */
+
+  RSVAS_NUM_EVENT
+} RsvasEventT;
+
+typedef enum
+{
+    RSVAS_TEMP_STATE_NONE,          /* Non temp state */
+    RSVAS_WAIT_OCCUPY_IND,          /* Occupy success, wait occupy indication from RSVAS */
+    RSVAS_WAIT_SUSPEND_REQ,         /* After send abort confirm to RSVAS, wait suspend request from RSVAS,
+                                                                next temp state is RSVAS_WAIT_SUSPEND_CNF */
+    RSVAS_WAIT_SUSPEND_CNF,         /* After send suspend req to CSS, wait suspend cnf from CSS,
+                                                                next temp state is RSVAS_TEMP_STATE_NONE */
+    RSVAS_WAIT_RESUME_IND,          /* Occupy success in virtual mode, wait resume indication from RSVAS,
+                                                                next temp state is RSVAS_WAIT_OCCUPY_IND */
+    RSVAS_WAIT_VIRTUAL_SUSPEND_CNF, /* After send virtual suspend req to CSS, wait virtual suspend cnf from CSS*/
+    RSVAS_WAIT_ABORT_CNF,           /* After send abort req to HLP, wait abort confirm from HLP,
+                                                                next temp state is RSVAS_WAIT_SUSPEND_REQ */
+    RSVAS_WAIT_VIRTUAL_SUSPEND_REQ, /* After send abort confirm to RSVAS, wait virtual suspend req from RSVAS,
+                                                                next temp state is RSVAS_WAIT_VIRTUAL_SUSPEND_CNF */
+
+    RSVAS_NUM_TEMP_STATE
+} RsvasTempStateT;
+
+typedef enum
+{
+    CAS_RSVAS_REQUEST_NORMAL                = 0,
+    CAS_SRLTE_ENHANCEMENT                   = 6,
+    CAS_SRLTE_ENHANCEMENT_TOLERENT          = 7 /* not used */
+} cas_rsvas_request_type_enum;
+
+typedef struct
+{
+    C2kRsvasIdT                 rsvasId;   /* C2K RSVAS ID */
+    rsvas_service_type_enum     servType;  /* Service bits mask*/
+    cas_rsvas_request_type_enum reqType;   /* Request type */
+} RsvasServiceT;
+
+typedef struct
+{
+    RsvasStateT         state;              /* Current RSVAS State */
+    RsvasStateT         prevstate;          /* Previous RSVAS State */
+    RsvasTempStateT     tempState;          /* Template RSVAS State */
+    RsvasServiceT       currService;        /* Current occupied or occuping service, RSVAS maybe in normal state (temp state RSVAS_WAIT_OCCUPY_IND),
+                                                                              virtual state (temp state RSVAS_WAIT_OCCUPY_IND), connect state */
+    kal_bool            PSTransferFromDO;   /* Flage of if current PS service is tranferred from DO */
+    kal_bool            pendingOccupyReq;   /* Flage of if pending RSVAS occupy request */
+    RsvasServiceT       occupyReq;          /* Pending RSVAS occupy request */
+    C2kRsvasIdT         occupyIndNotifyId;  /* RSVAS id which C2K RESVAS notify occupy indication to */
+    kal_bool            pendingRelReq;      /* Only for pending PS service RSVAS release request */
+    RsvasServiceT       releaseReq;         /* Pending RSVAS release request */
+    rsvas_sim_enum      servOwnerSimId;     /* The source SIM Id of occupied */
+    rsvas_sim_enum      currC2kSimId;       /* The current SIM Id of C2K */
+    kal_bool            rttBorrowDOService; /* 1xRTT don't occupy PS service, borrow EVDO's */
+	rsvas_abort_action_enum servAbortAction; /* The action after this abort*/
+	mspm_procedure_enum waittingProcedure; /* waitting start cnf procedure*/
+} RsvasContextT;
+
+extern kal_bool waitingForOccupyInd;
+
+rsvas_service_type_enum rsvasClass1xRTTServiceType(const SysServiceOptionT so);
+
+void rsvasInit(void);
+
+RsvasContextT rsvasGetContext(void);
+
+void rsvasSetState(RsvasStateT newState);
+
+kal_bool rsvasIsState(RsvasStateT state);
+
+RsvasStateT rsvasGetState(void);
+
+RsvasStateT rsvasGetPrevState(void);
+
+RsvasTempStateT rsvasGetTempState(void);
+
+kal_bool rsvasIsTempState(RsvasTempStateT tmpState);
+
+void rsvasSetServOwnerSimId(rsvas_sim_enum simId);
+
+void rsvasSetCurrentSimId(uim_access_option_enum cardAccessOption, kal_bool force);
+
+rsvas_sim_enum rsvasGetServOwnerSimId(void);
+
+rsvas_service_type_enum rsvasGetServOwnerType(void);
+
+rsvas_sim_enum rsvasGetSimIdBeforeOccupy(void);
+
+RsvasEventT rsvasConvertMsgIdToEvent(kal_uint32 MsgId);
+
+kal_bool rsvasIsServiceOccupied(C2kRsvasIdT rsvasId, rsvas_service_type_enum servType);
+
+kal_bool rsvasIsCurrService(C2kRsvasIdT rsvasId, rsvas_service_type_enum servType);
+
+kal_bool rsvasIsInSuspend(void);
+
+void rsvasClear1xRTTOccupiedService(void);
+
+void rsvasForceClear1xRTTOccupiedService(void);
+
+void PswIdpRsvasServiceOccupyReqMsg(PswRsvasServiceOccupyRequestT *MsgP);
+
+void PswIdpRsvasServiceReleaseReqMsg(PswRsvasServiceReleaseT *MsgP);
+
+kal_bool rsvasOccupy(const C2kRsvasIdT id,
+                     const rsvas_service_type_enum servType,
+                     const cas_rsvas_request_type_enum reqType);
+
+void rsvasRelease(const C2kRsvasIdT id,
+                  const rsvas_service_type_enum servType);
+
+void rsvasEngine(RsvasEventT event);
+mspm_procedure_enum rsvasServiceTypeToMspmProcedure(const C2kRsvasIdT id, const rsvas_service_type_enum servType, const cas_rsvas_request_type_enum requestType);
+
+mspm_sim_index_enum rsvasGetMspmSimIndex(void);
+
+void rsvasMSPMAsSessionStartCnf(mspm_as_session_start_cnf_struct* msg_ptr);
+
+void rsvasSetServAbortAction(rsvas_abort_action_enum servType);
+
+rsvas_abort_action_enum rsvasGetServAbortAction(void);
+
+void rsvasHandleMspmAsSessionStartCnf(mspm_procedure_enum procedure, kal_bool result);
+#endif /* defined (MTK_DEV_C2K_IRAT) */
+#endif /* _C2K_RSVAS_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/cave.h b/mcu/interface/protocol/as_c2k/1xrtt/cave.h
new file mode 100644
index 0000000..7c99bef
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/cave.h
@@ -0,0 +1,123 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     cave.h
+ *
+ * Purpose:    Header File for the CAVE Algorithm Function.
+ *
+ ****************************************************************************
+ *
+ * VCS Header Information
+ *
+ * $Revision: 1.2 $
+ *   $Author: fpeng $
+ *
+ *      $Log: cave.h $
+ *
+ *      07 06 2017 sue.zhong
+ *      [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *      Correct copyright file header
+ *      Revision 1.2  2004/03/25 12:09:18  fpeng
+ *      Updated from 6.0 CP 2.5.0
+ *      Revision 1.1  2003/05/12 15:38:30  fpeng
+ *      Initial revision
+ *      Revision 1.2  2002/06/06 13:16:40  chinh
+ *      Changed and Added Copyright
+ *      Revision 1.1  2001/01/17 10:58:08  plabarbe
+ *      Initial revision
+ *      Revision 1.1  2000/10/24 14:11:03  fpeng
+ *      Initial revision
+ *      Revision 1.3  2000/08/23 22:05:14Z  RSATTARI
+ *      Isotel release 2.8 plus LSI applicable IS-95B changes
+ *      Revision 1.3  1998/03/30 23:26:03  mhayduk
+ *      Release 0.03.
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _CAVE_H_ 
+
+  #define _CAVE_H_ 1
+
+  /* CAVE Registers structure */
+  typedef struct CaveRegs
+    {
+      kal_uint32 post_auth_lfsr;         /* Linear Feedback Shift Register     */
+      kal_uint8  post_auth_offset1;      /* offset_1                           */
+      kal_uint8  post_auth_offset2;      /* offset_2                           */
+      kal_uint8  post_auth_data[3];      /* Last auth value saved              */
+      kal_uint8  Register[16];           /* Mixing Registers                   */
+
+    } CAVEREGS;
+
+  /* Function prototypes */
+  void      cave( kal_uint8* reg, short nRounds, kal_uint8 *ofs_1, kal_uint8 *ofs_2,
+                  kal_uint32 *LFSR);
+
+  void      dwordToBytes(kal_uint32 value, kal_uint8 *array);
+  kal_uint32    bytesToDword(kal_uint8 *array);
+  CAVEREGS* getCaveRegs(void);
+
+  /* CMEA/VPM Function Prototypes */
+  void generateCMEAandVPM(kal_uint32 esn, kal_uint32 rands, kal_uint8 *ssdb);
+
+  /* Cellular Data Key generation (ORYX algorithm) */
+  void   generateDataKeyORYX(kal_uint8 *ssdb);
+  void   generateLTableORYX(kal_uint32 rands);
+  kal_uint8* getLTable(void);
+  kal_uint32 getORYXDataKey(void);
+
+  /* A few handy macros are always appreciated! */
+  #define EncryptMsg(buf, len)  EncryptDecryptCMEA(len, buf)
+  #define DecryptMsg(buf, len)  EncryptDecryptCMEA(len, buf)
+
+  #define GetAAV() ((kal_uint8) 0xc7)
+
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/channel.h b/mcu/interface/protocol/as_c2k/1xrtt/channel.h
new file mode 100644
index 0000000..146235b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/channel.h
@@ -0,0 +1,137 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   channel.h
+ *
+ * Purpose:    Definition of CHANNEL and supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: channel.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:20  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:31  fpeng
+ *       Initial revision
+ *       Revision 1.6  2002/07/31 16:54:38  hans
+ *       H and G block added for Other Band Class support (cr474).
+ *       Revision 1.5  2002/06/06 13:11:01  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.4  2002/01/02 10:11:21  AMALA
+ *       Added new system selection changes.
+ *       Revision 1.3  2001/11/20 12:28:03  mclee
+ *       Remove BandClass enum
+ *       Revision 1.2  2001/06/27 18:31:08  hans
+ *       BAND_CLASS_2 and BAND_CLASS_5 defined in BandClass enum.
+ *       Revision 1.1  2001/01/17 10:58:10  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/11/13 14:25:13  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:04Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:05:17Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes
+ *       Revision 1.8  1999/02/23 00:28:41  mhayduk
+ *       Fixed up the frequency to block function so it accounts for
+ *       non-PCS bands.
+ *
+ *       Revision 1.7  1998/12/07 21:12:41  mhayduk
+ *       Added routine to check if Analog is supported in requested band.
+ *
+ *       Revision 1.6  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.4  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _CHANNEL_H_
+
+  #define _CHANNEL_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pswnam.h"
+#include "cssapi.h"
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+  kal_bool cpIsBandChannelValid(SysBandChannelT *bandChannel);
+  kal_bool cpIsBandSupported(SysCdmaBandT band);
+  kal_bool cpSupportCDMAChannel(SysBandChannelT *bandChannel);
+  kal_uint8 cpFrequencyToBlock(SysCdmaBandT band,kal_uint16 frequency);
+  kal_bool cpIsAnalogSupportedInBand(SysCdmaBandT band);
+  void cpSetCdmaBandSupported(SysCdmaBandT band, kal_bool supported);
+  void cpSetNumBandsSupported(kal_uint8 numBands);
+  kal_uint8 cpGetNumBandsSupported(void);
+#endif  /*_CHANNEL_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/cptimer.h b/mcu/interface/protocol/as_c2k/1xrtt/cptimer.h
new file mode 100644
index 0000000..ddb1161
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/cptimer.h
@@ -0,0 +1,579 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     cptimer.h
+ *
+ * Purpose:    Definitions for Call Processing Timer Services.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.7 $
+ *  $Author: mclee $
+ *
+ *  $Log: cptimer.h $
+ *
+ *  09 18 2020 tina.ma
+ *  [MOLY00555839] ?Maxwell-AN00A 10.1.1.160?APR????modemcrash
+ *  	
+ *  	.
+ *
+ *  06 08 2020 tina.ma
+ *  [MOLY00514816] ??(Bugs) 2883828??19165?????????????19165????CMCC??+CT?IMS+1x????5G?? ???????
+ *  	
+ *  	.
+ *
+ *  05 06 2020 tina.ma
+ *  [MOLY00514816] ??(Bugs) 2883828??19165?????????????19165????CMCC??+CT?IMS+1x????5G?? ???????
+ *  	
+ *  	.
+ *
+ *  03 27 2020 yanfeng.xu
+ *  [MOLY00507451] [MT6885][Petrus][China][[SH][MP2][5GMM][Static][CU][MDST][SWIFT][S][ASSERT] file:mcu/protocol/lte_sec/errc/cel/src/errc_cel_cscom.c line:6558
+ *
+ *  07 09 2019 tina.ma
+ *  [MOLY00418383] [Rose][Merlot][Q0][BSP+]The call was auto end when you make a call.(once)
+ *  	
+ *  	power down registration
+ *
+ *  12 18 2018 danny.dai
+ *  [MOLY00370973] [MT6779][Lafite][P0][BSP+][MP2][CTC FT][SH][om_c2k6m][Benchmark][FT_SQC_CS Performace_08]DUT MTC failure 12 times however REF-MI 8 se failure 1 times
+ *  	
+ *  	VMOLY.EVB.SEPT.DEV: opt for PCH resync denied issue
+ *
+ *  09 11 2018 yanfeng.xu
+ *  [MOLY00348345] [Lafite][SLT]BriefException: [1][core0,vpe0,tc0(vpe0)] Assert fail: clcidp.c 8570 0x0 0x0 0x0 ¨C EVCLC
+ *
+ *  06 07 2018 yanfeng.xu
+ *  [MOLY00331827] [Eiger][O1 BSP+][SRLTE][CT 6M C][LTE IOT][FT][SH][ALU][Auto][CAT][PLMN_LIST][Fatal error(task)] err_code1:0x00000305 err_code2:0x88880002 err_code3:0xCCCCCCCC MD Offender:DDM
+ *
+ *  05 23 2018 yanfeng.xu
+ *  [MOLY00327962] [EIGER][MT3967][RDIT][FT][TDD][CMCC][GZ][VoLTE][Overnight][Auto][CAT]Externel (EE),0,0,99,/data/vendor/core/,1,modem,[ASSERT] file:mcu/protocol/as_multimode/rsva/rsvas/src/rsvas_utils.c line:286
+ *
+ *  09 07 2017 tina.ma
+ *  [MOLY00275192] [Merge from MP5.TC10]after airplane mode,DUT register network slowly than REF
+ *  	
+ *  	merge from MP5.TC10 to UMOLYA
+ *
+ *  08 25 2017 danny.dai
+ *  [MOLY00273514] Expends 180ms Idle HO delay timer length to 200ms
+ *  	
+ *  	Trunk: Expends 180ms Idle HO delay timer length to 200ms
+ *
+ *  06 29 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  ::KAL type - folder inc
+ *
+ *  05 18 2017 gavin.zhang
+ *  [MOLY00247455] [6293][C2K][PS]Change KAL timer API to event scheduler API
+ *
+ *  	PSW timer change.
+ *
+ *  02 28 2017 scott.song
+ *  [MOLY00223502] [93m][RTT][FL]merge T0 to Trunk 3322251 3322920 3325989 3326264 3328096 3328437 3331529 3332165 3334136
+ *
+ *  	.
+ *
+ *  02 24 2017 yanfeng.xu
+ *  [MOLY00232146] SIXTH00016529 merge to UMOLYA TRUNK
+ *
+ *  12 01 2016 sue.zhong
+ *  [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ *  Update C2K source
+ *  Revision 1.7  2006/03/16 11:55:46  mclee
+ *  - Reorder Timer enum in order to keep consistent with ETS.
+ *  Revision 1.6  2005/05/06 18:09:11  hans
+ *  Test mode sleep delay for Slotted
+ *  Revision 1.5  2005/03/18 11:43:05  hans
+ *  Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *  Revision 1.4  2004/09/28 16:25:30  hans
+ *  Changes from CBP6.0 merged.
+ *  Revision 1.3  2004/04/06 14:02:01  dstecker
+ *  CBP6.1 release 1
+ *  Revision 1.2  2004/03/25 12:09:23  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.3  2004/02/10 12:50:40  bcolford
+ *  Merged CBP4.0 Release 8.05.0 changes.
+ *  Revision 1.21  2003/12/12 09:55:36  mclee
+ *     - Add SLOTTED_IDLE_HO_DELAY 100L
+ *     - Add CP_SLOTTED_IDLE_HO_DELAY_TIMER to CPTimerId enum.
+ *  Revision 1.20  2003/11/06 11:37:19  ameya
+ *  Added the CP_CSS_REDIR_END_TIMER and CP_CSS_MORE_PREF_SCAN_TIMER to the timer enum.
+ *  Revision 1.19  2003/09/05 10:17:34  mclee
+ *  Add Silent Retry Reset Timer
+ *  Revision 1.18  2003/08/22 16:34:12  mclee
+ *  Fix CR2554 to properly decrement reg zone timers
+ *  Revision 1.17  2003/08/22 11:43:50  mclee
+ *  Uim Feature Introduction in SW Base
+ *  Revision 1.16  2003/08/12 16:20:43  bcolford
+ *  Change the value of the macro ALERT_TIMEOUT back to
+ *  the original value of 65sec. See CR No. 2461 for details.
+ *  Revision 1.15  2003/07/22 14:10:24  robertk
+ *  CR 2461: Changed the value of the AMPS ALERT_TIMEOUT to
+ *  get it closer to the specified 65sec.
+ *  Revision 1.14  2003/02/19 18:55:06  hans
+ *  Absolut timer added for RETRY_DELAY order msg used by RC
+ *  Revision 1.13  2002/11/26 19:37:31  hans
+ *  1 sec timer added to time 1 sec between each SCRM msg
+ *  with no reply from BS
+ *  Revision 1.12  2002/08/27 17:00:44  byang
+ *  Add timer ID for ping timer: CP_TC_DCCH_ONLY_PING_TIMER.
+ *  Revision 1.11  2002/08/08 14:56:31  mclee
+ *  Add LocServ AGPS & LocServ General Timers
+ *  Revision 1.10  2002/06/06 13:11:17  chinh
+ *  Changed and Added Copyright
+ *  Revision 1.9  2002/04/18 09:49:55  mclee
+ *  Add Loc Serv timers
+ *  Revision 1.8  2002/04/03 16:03:42  chinh
+ *  Removed compile option ifdefIS2000A for T72m and T40m.
+ *  Revision 1.7  2002/02/25 08:48:29  AMALA
+ *  Corrected SS Re-Scan errors.
+ *  Revision 1.6  2002/02/06 11:36:30  mclee
+ *  Move PSMM and Hard Handoff timers to Traffic CH timer block.
+ *  Revision 1.5  2002/01/17 17:14:29  akayvan
+ *  Slotted Mode Mods.
+ *  Revision 1.4  2001/08/03 15:14:29  dstecker
+ *  Modifications for IS2000 handoffs
+ *  Revision 1.3  2001/07/18 15:02:05  chinh
+ *  cbp3 porting for Idle and Access
+ *  Revision 1.2  2001/01/29 18:20:51  dstecker
+ *  new access probe architecture
+ *  Revision 1.1  2001/01/17 10:58:17  plabarbe
+ *  Initial revision
+ *  Revision 1.3  2000/11/27 11:55:58  chinh
+ *  Changed T40m and added T72m
+ *  Revision 1.2  2000/11/13 22:25:21Z  byang
+ *  IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *  Revision 1.1  2000/10/24 21:11:06Z  fpeng
+ *  Initial revision
+ *  Revision 1.4  2000/08/31 23:41:47Z  bcolford
+ *  Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *  Revision 1.3  2000/08/23 22:05:21Z  RSATTARI
+ *  Isotel release 2.8 plus LSI applicable IS-95B changes
+ *  Revision 1.18  2000/02/25 01:13:11  gfrye
+ *  Added analog SMS re-assembly timer.
+ *
+ *  Revision 1.17  2000/02/19 00:01:10  gfrye
+ *  Added new defined timeouts for the order timer when an
+ *  Alert With Info SMS order is received.
+ *  see IS-91, section 2.6.4.3.1.
+ *
+ *  Revision 1.16  1999/12/10 22:12:11  gfrye
+ *  Removed null character.
+ *
+ *  Revision 1.15  1999/12/09 21:49:06  gfrye
+ *   Added timer for Out Of Service.
+ *
+ *  Revision 1.14  1999/06/23 22:46:06  gfrye
+ *  New timer CP_SLEEP_WAKEUP_TIMER to guard if ENG_IND_WAKEUP is lost.
+ *
+ *  Revision 1.12  1999/06/04 23:27:26  scotvold
+ *  New Message Transmitter.
+ *
+ *  Revision 1.11  1999/03/02 00:56:20  dfischer
+ *  Added sysdet delay timer
+ *
+ *  Revision 1.10  1998/10/20 23:58:23  mhayduk
+ *  Added T53 support.
+ *
+ *  Revision 1.9  1998/09/22 18:44:57  tdaly
+ *  Added IS-95 analog mode support.
+ *
+ *  Revision 1.8  1998/08/19 15:10:34  mhayduk
+ *  Changed to just include stype.h instead of tracemac.h.
+ *
+ *  Revision 1.7  1998/07/03 16:57:30  dfischer
+ *  New load
+ *
+ *  Revision 1.6  1998/06/08 21:48:25  scotvold
+ *  Updated for Release 0.06
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _CPTIMER_H_
+
+  #define _CPTIMER_H_ 1
+
+#include "sysdefs.h"
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+
+/*****************************************************************************
+ * CMDA Definitions
+ ****************************************************************************/
+  #define ACTION_TIME_NOW           0L
+  #define ACTION_TIME_MULT          80L
+
+  /* Defined Timer Constant values - in milliseconds */
+  #define T1m                       400L     /* Max time MS waits for ACK     */
+  #define T2m                       200L     /* Max time MS to send ACK       */
+  #define T3m                       320L     /* TC duplicate message timeout  */
+  #define T4m                       2200L    /* PCH duplicate message timeout */
+  #define T5m                       5000L    /* FTC fade timeout              */
+  #define T20m                      15000L   /* pilot acquistion timeout      */
+  #define T21m                      1000L    /* time to receive sync msg      */
+  #define T30m                      3000L    /* PCH monitor timeout           */
+  #define T31m                      600000L  /* Config. Parameters timeout    */
+  #define T40m                      3000L    /* PCH timeout for access        */
+  #define T41m                      4000L    /* time to rx updated ovhd msgs  */
+  #define T42m                      12000L   /* time to rx page/orig response */
+  #define T50m                      1000L    /* time to rx N5m good TC frames */
+  #define T51m                      2000L    /* time to rx BS Ack Order       */
+  #define T52m                      5000L    /* Waiting for Order timeout     */
+  #define T53m                      65000L   /* Waiting for Answer timeout    */
+  #define T55m                      2000L    /* Release timeout               */
+  #define T56m                      200L     /* time to rx FTC msg or order   */
+#ifdef MTK_PLT_ON_PC_IT
+  #define T57m                      1000L   /* Registration initialization   */
+#else
+  #define T57m                      20000L   /* Registration initialization   */
+#endif
+  #define T59m                      5000L    /* Response to Service Req/Resp  */
+  #define T64m                      10000L   /* SSD Update Procedure          */
+  #define T65m                      5000L    /* Waiting For Service Connect   */
+  #define T66m                      200000L  /* TMSI_EXP_TIME timer           */
+  #define T68m                      5000L    /* Waiting For Service Req/Resp  */
+  #define T69m                      24000L   /* Full TMSI Timer base period   */
+  #define T70m                      800L     /* time btween meas and CRSRM    */
+  #define T71m                      40L      /* send CFSRM after srch         */
+  #define T72m                      1000L    /* Timeout for access in ho   */
+  #define T78m                      30000L   /* Timeout for TCH ping timer    */
+
+/* Frame based counters */
+  #define N1m                       13   /* Maximum IS2000 retransmissions */
+  #define N2m                       12
+  #define N3m                       2
+  #define N5m                       2
+  #define N6m                       6
+  #define N7m                       10
+  #define N8m                       40
+  #define N9m                       7    /* max size of Zone List */
+  #define N10m                      4    /* max size of Sid Nid List */
+  #define N11m                      1
+  #define N12m                      10   /* Number of frames over which the mobile station      *
+                                          * maintains a running average of the total rcvd power */
+  #define N13m                      6    /* max number of pilots in Access HO List */
+
+/*****************************************************************************
+ * PS Implementation Definitions
+ ****************************************************************************/
+  #define CP_1_SECOND               1000L    /* generic 1 second interval     */
+  #define CP_100_MSEC               100L     /* generic 100 ms interval       */
+  #define ENG_SLEEP_WAKEUP_TIMEOUT  800L     /* time to expect wakeup         */
+
+/*****************************************************************************
+ * AMPS Definitions
+ ****************************************************************************/
+
+  /* AMPS Timer Constant values - in milliseconds (as per EIA/TIA-553) */
+  #define MESSAGE_TIMEOUT    3000L    /* Default wait for FOCC messages     */
+  #define RCF_0_TIMEOUT       400L    /* Wait for Message if RCFs = 0       */
+  #define RCF_1_TIMEOUT      1000L    /* Wait for CFiller if RCFs = 1       */
+  #define WFOM_TIMEOUT       1500L    /* Wait for OMT before Access         */
+  #define REGCONF_TIMEOUT    5000L    /* Wait for Registration Confirmation */
+  #define WAITMSG_TIMEOUT    5000L    /* Timeout in Await Message state     */
+  #define ORDER_TIMEOUT      5000L    /* Order Timer value                  */
+  #define ALERT_TIMEOUT     65000L    /* Alert Timer value                  */
+  #define FADE_TIMEOUT       5000L    /* SAT Fade Timer value               */
+  #define RLSDELAY_TIMEOUT    500L    /* Delay if Termination Status set    */
+  #define FLASH_TIMEOUT     10000L    /* Valid HookFlash window             */
+  #define BSCHALL_TIMEOUT    5000L    /* Base Station Challenge window      */
+  #define TIMING_CHANGE_TIMEOUT 2000L /* Timing Change substate timeout     */
+
+  /* IS-91 defines special timers for waiting for order if an
+   * Alert with Info SMS is received, see IS-91, section 2.6.4.3.1 */
+  #define ORDER_TMO_SHORT   600L
+  #define ORDER_TMO_LONG  10000L
+  #define SMS_SEGMENT_TMO  2000L
+
+  /* Max time (ms) we'll sit in IDLE state before we decide to rescan */
+  #define MAX_REDIRECT_DELAY  31000L
+
+  /* Signaling Tone Guard Delay (ms) - for ST Burst separation on Release */
+  #define GUARD_DELAY         250L
+
+  /* Signaling Tone Burst Durations (ms) */
+  #define FLASH_BURST         400L    /* HookFlash                          */
+  #define HANDOFF_BURST        50L    /* Handoff                            */
+  #define RELEASE_BURST      1800L    /* Release                            */
+
+  /* Timer Values (ms) for Discontinuous Transmission (DTX) */
+  #define DTX_SHORT_DELAY    1500L    /* Short Delay fot DTX-High           */
+  #define DTX_LONG_DELAY     5000L    /* Long delay for DTX-High (Audits)   */
+  #define DTX_HILO_INTERVAL   300L    /* Hi -> Lo Transition Interval       */
+  #define DTX_LOHI_WAIT       200L    /* Wait after forced Lo -> High       */
+
+/* IS801 Location Services Timers */
+  #define LOC_T1_TIMEOUT 2000L   /* Pilot Phase Measurement PREF_RESP_QUAL = 000 */
+  #define LOC_T2_TIMEOUT 4000L    /* Pilot Phase Measurement PREF_RESP_QUAL = 001 */
+  #define LOC_T3_TIMEOUT 8000L   /* Pilot Phase Measurement PREF_RESP_QUAL = 010 */
+  #define LOC_T4_TIMEOUT 16000L  /* Pilot Phase Measurement PREF_RESP_QUAL = 011 */
+  #define LOC_T5_TIMEOUT 32000L  /* Pilot Phase Measurement PREF_RESP_QUAL = 100 */
+  #define LOC_T6_TIMEOUT 64000L  /* Pilot Phase Measurement PREF_RESP_QUAL = 101 */
+  #define LOC_T7_TIMEOUT 128000L /* Pilot Phase Measurement PREF_RESP_QUAL = 110 */
+  #define LOC_T8_TIMEOUT 256000L /* Pilot Phase Measurement PREF_RESP_QUAL = 111 */
+  #define LOC_T9_TIMEOUT 35000L  /* Outstanding Response Timeout */
+  #define LOC_GENERAL_TIMEOUT 300000L /* General Session Keep Alive Time */
+
+  /* From Gen93, the low layer shall report the first frame to PSW after 40ms from PCH wakeup.
+   * Corresponding, which time is 20ms from PCH wakeup before Gen93 projects. */
+  #define SLOTTED_IDLE_HO_DELAY 200L /* There exist PCH message (.e.g Data Burst) large than 4 frames in Sprint.
+                                      *   and paging record maybe located after 200ms from PCH wakeup in Vzw.
+                                      * Expand this timer length for all network, as it is has not risk. */
+
+  #define E911_ACCESS_RESCAN_TIMEOUT 16000L  /* Continuous time for E911 access
+                                                before triggering a rescan */
+  #define MO_BKOFF_TIMEOUT 2000   /* time out before an 1X MO call can be made. */
+  #define CP_1X_ANTENNA_GRANT_TIMEOUT     15*CP_1_SECOND
+  #define CP_BS_RLO_DELAY_TIMEOUT 60L /* Number of ms to wait before releasing TCH
+                                       * after Lmd TC Msg Sent Ind is processed for BS RLO.
+                                       */
+
+  #define T1M_FRAME                 T1m/20   /* T1m (in frames)         */
+  #define T2M_FRAME                 T2m/20   /* T2m (in frames)         */
+  #define T4M_FRAMES                T4m/20   /* T4m value in frames     */
+  #define T5M_FRAME                 T5m/20   /* T5m in frames */
+  #define T31M_FRAMES               T31m/20  /* T31m value in frames    */
+  #define ENG_100MSEC_COUNT         CP_100_MSEC/20 /* 5 frames to 100 msec */
+  #define ENG_ONESEC_COUNT          CP_1_SECOND/20  /* 50 frames in 1 sec */
+
+#ifdef MTK_DEV_C2K_IRAT
+  #define C2K_LTE_CSFB_TIMEOUT      500L     /* timer to wait CSFB confirm from MD1 */
+  #define C2K_REPORT_NO_SVC_AFTER_RESUME_TIMEOUT   5000L    /* timer to wait report no service to VAL */
+  #define PS_PROTECT_DELAY_TIMEOUT      500L     /* PS protection delay for receiving ECAM after valod Ack */
+  #define CP_C2K_POWERDOWN_IN_SUSPEND_TIMEOUT   5000L   /* timer expired to disabled*/
+  #define RSVAS_WAIT_SUSPEND_CNF_TIMEOUT         60*CP_1_SECOND     /* timer to wait suspend cnf from CSS */
+  #define RSVAS_WAIT_VIRTUAL_SUSPEND_CNF_TIMEOUT 60*CP_1_SECOND     /* timer to wait virtual suspend cnf from CSS */
+  #define RSVAS_WAIT_OCCUPY_IND_TIMEOUT          60*CP_1_SECOND     /* timer to wait occupy ind from RSVAS */
+  #define PS_SERVICE_ACCESS_PROTECT_TIMEOUT      15*CP_1_SECOND     /* max time to PS service access protect */
+#endif
+
+  #define CP_PAGING_PRIORITY_OPT_TIMER_TIMEOUT 30000 /* Timer for boosting slotted mode paging RF priority */
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+  #define ENCRYPT_VOICE_PROTECT_TIMEOUT 8000L   /* encrypt voice fail after timer expired */
+  #define ENCRYPT_RANDOM_NUMBER_TIMEOUT 1L      /* encrypt random number generate timer expired */
+#endif
+  #define CP_IMPROVE_SYNC_PRIO_TIMEOUT 10000L   /* when exit flight mode, improve 1x priority when sync acquire*/
+  #define CP_ACCESS_PROTECTION_TIMEOUT    60000L    /* ACCESS PROTRCT: can not start access attempt, such as
+                                                                               *waiting OCCUPY IND, UIM AUTH */
+  #define CP_IDLE_NO_SLEEP_PROTECT_TIMEOUT 60000L /* Protect 1xRTT does not stay in no slotted Idle mode too long */
+  
+  /* Absolute Timers */
+  typedef enum
+  {
+    CP_PILOT_ACQUIRE_TIMER,           /* 0 pilot acquisition timer            */
+    CP_SYNC_ACQUIRE_TIMER,            /* 1 sync acquisition timer             */
+    CP_RADIO_TUNE_TIMER,              /* 2 radio tune timer                   */
+    /* BCY 08/25/00: renamed from CP_PCH_MONITOR_TIMER */
+    CP_FCSCH_MONITOR_TIMER,             /* 3 new page channel msg timer         */
+    CP_SYSTEM_ACCESS_STATE_TIMER,     /* 4 System Access State timer          */
+    CP_TA_TIMER,                      /* 5 Access timer                       */
+    CP_SILENT_RETRY_TIMER,            /* 6 Silent retry timer                 */
+
+    /* KEEP TC TIMERS CONTIGUOUS - remember to update FIRST and LAST TIMER *
+     *                             definitions in eng_tc.c                 */
+    CP_TC_N5M_GOOD_FRAMES_TIMER,          /* 7 N5m Good TC Frames (TC_INIT)   */
+    CP_TC_BS_ACK_TIMER,                   /* 8 BS Ack Order (TC_INIT)         */
+    CP_TC_WAITING_FOR_ORDER_STATE_TIMER,  /* 9 Waiting for Order State        */
+    CP_TC_WAITING_FOR_ANSWER_STATE_TIMER, /* 10 Waiting for Answer State       */
+    CP_TC_RELEASE_STATE_TIMER,            /* 11 Release State                 */
+    CP_TC_FADE_TIMER,                     /* 12 FTC Supervision Fade          */
+    CP_TC_SERV_NEG_SUBFUNCTION_TIMER,     /* 13 Service Negotiation Subfnc    */
+    CP_TC_CF_PERIODIC_SEARCH_TIMER,       /* 14 Cand Freq Periodic Search     */
+    CP_TC_PSMM_PERIODIC_TIMER,            /* 15 Periodic PSMM timer           */
+    CP_TC_HARD_HANDOFF_TIMER,             /* 16 HHO w return on fail timer    */
+    CP_TC_PING_TIMER,                     /* 17 CPCCH timer                   */
+
+    /* KEEP TC TIMERS CONTIGUOUS */
+    CP_TMSI_EXP_TIMER = 19,           /* 19 TMSI expiration timer             */
+    CP_REG_INIT_TIMER,                /* 20 Registration Initialization timer */
+    CP_SSD_UPDATE_TIMER,              /* 21 SSD Update Procedure timer        */
+    CP_FULL_TMSI_TIMER,               /* 22 Full TMSI timer                   */
+    CP_IDLE_HO_TIMER,                 /* 23 Idle Handoff timer                */
+    CP_SLEEP_WAKEUP_TIMER,            /* 24 Sleep wakeup timer                */
+    CP_WAIT_FOR_SRCH_RSLTS_TIMER,     /* 25 Waiting for search rslts in access entry */
+    CP_EC_IO_TIMER,                   /* 26 Eo/Io Enhanced Access timer       */
+    CP_DELAYED_ORIG_WAITING_TIMER,    /* 27 Waiting to do delayed orig timer  */
+    CP_EMERGENCY_CALLBACK_MODE_TIMER, /* 28 leave emergency call back mode    */
+    CP_SLOTTED_TIMER,                 /* 29 slotted timer       */
+    CP_UNUSED_TIMER,                  /* 30 UNUSED/AVAILABLE TIMER ID         */
+
+    CP_LOC_REQ_TIMER0,                /* 31 Location Services Outstanding Request Timer #1 */
+    CP_LOC_REQ_TIMER1,                /* 32 Loc Timer #2 */
+    CP_LOC_REQ_TIMER2,                /* 33 Loc Timer #3 */
+    CP_LOC_PPM_BTWEEN_FIX_TIMER0,     /* 34 Pilot Phase Meas Between Fix timer 0 */
+    CP_LOC_PPM_BTWEEN_FIX_TIMER1,     /* 35 Pilot PHase Meas Between Fix timer 1 */
+    CP_LOC_PPM_PREF_RESP_QUAL_TIMER0, /* 36 Time window to respond to PPM Request Timer 0*/
+    CP_LOC_PPM_PREF_RESP_QUAL_TIMER1, /* 37 Time window to respond to PPM Request Timer 1*/
+    CP_LOC_GEN_TIMER0,                /* 38 General Keep Alive Session Timer */
+    CP_LOC_GEN_TIMER1,                /* 39 */
+    CP_LOC_GEN_TIMER2,                /* 40 */
+    CP_LOC_PRM_BTWEEN_FIX_TIMER,      /* 41 PseudoRange Meas Between Fix Timer */
+    CP_LOC_ACQ_ASST_FRESH_TIMER,      /* 42 Acquisition Assist Refresh Timer */
+    CP_LOC_BS_ALM_FRESH_TIMER,        /* 43 BS Almanac Refresh Timer */
+    CP_PE_RC_RETRY_DELAY_TIMER,       /* 44 rev sch retry delay order received from BS */
+    CP_PE_RC_RSR_REQ_TIMER,           /* 45 1 sec ESCAM timer for resource control */
+    CP_SILENT_RETRY_RESET_TIMER,      /* 46 Silent Retry Reset Timer          */
+    CP_CSS_REDIR_END_TIMER,           /* 47 Redirection End timer */
+    CP_CSS_MORE_PREF_SCAN_TIMER,      /* 48 When not most pref sys acq, rescan for better serv */
+    CP_SLOTTED_IDLE_HO_DELAY_TIMER,   /* 49 Slotted Idle HO Delay Timer */
+    CP_CDMA_TO_AMPS_ACQ_DELAY_TIMER,  /* 50 CDMA to AMPS system selection delay timer */
+    CP_RETRY_ORIG_DELAY_TIMER,	      /* 51 Orig should not be allowed */
+    CP_TC_SLOTTED_DELAY_TIMER,        /* 52 Slotted Paging sleep delay */
+    CP_UNUSED_2_TIMER,                /* 53 UNUSED/AVAILABLE TIMER ID  */
+    CP_IDLE_STATE_TIMER,              /* 54 Slotted Paging sleep delay */
+                                      /* 55: AVAILABLE  */
+    CP_REG_THROTTLING_TIMER = 56,     /* 56 Timer for Unsuccessful Registration */
+    CP_CSS_EPRL_ESPM_WAIT_TIMER,      /* 57 Time to wait for ESPM to validate
+                                            System Selection */
+    CP_E911_ACCESS_FAIL_TIMER,        /* 58  Rescan after E911_ACCESS_RESCAN_TIMEOUT
+                                       * of continuous E911 probing */
+    CP_1XMO_BKOFF_TIMER,              /* 59 Back off timer before origination request is sent. */
+    CP_NO_SERVICE_TIME,               /* 60 SMS timer for no svc */
+    CP_1X_ANTENNA_GRANT_TIMER,        /* 61 No Pilot Acq Rsp from L1d */
+    CP_TIMING_CHANGE_TIMER,           /* 62 Timing Change substate timer */
+    CP_BS_RELEASE_DELAY_TIMER,        /* 63 TCH Release delay for BS RLO */
+
+    CP_LOC_PREEMPTION_TIMER,
+#if defined(MTK_CBP) && defined(MTK_DEV_ENGINEER_MODE)
+    CP_TMSI_DURATION_TIMER,           /* 65 TMIS duration TIMER from TSAM */
+#endif
+#ifdef MTK_DEV_C2K_IRAT
+    CP_C2K_LTE_CSFB_TIMER,            /* 66 C2K LTE CSFB TIMER */
+    CP_C2K_REPORT_NO_SVC_AFTER_RESUME_TIMER,    /* 67 wait for report nosvc timer */
+    CP_PS_PROTECT_DELAY_TIMER,        /* 68 PS Protection Delay after Valid Ack */
+    CP_C2K_POWERDOWN_IN_SUSPEND_TIMER,   /*69 receive power down in suspend delay timer*/
+    CP_IMPROVE_SYNC_PRIO,              /* 70 when exit flight mode, improve 1x priority when sync acquire*/             
+#endif
+#ifdef MTK_CBP_ENCRYPT_VOICE
+    CP_ENCRYPT_VOICE_TIMER,           /* 71 encrypt voice fail after timer expired */
+    CP_ENCRYPT_RANDOM_NUMBER_TIMER,   /* 72 encrypt random number generate timer */
+#endif
+#ifdef MTK_DEV_C2K_IRAT
+    CP_RSVAS_WAIT_SUSPEND_CNF_TIMER,            /* 73 PSW wait suspend cnf from CSS timer */
+    CP_RSVAS_WAIT_VIRTUAL_SUSPEND_CNF_TIMER,    /* 74 PSW wait virtual suspend cnf from CSS timer */
+    CP_RSVAS_WAIT_OCCUPY_IND_TIMER,             /* 75 PSW wait occupy ind from RSVAS timer */
+#endif
+
+    CP_PAGING_PRIORITY_OPT_TIMER,     /* 76 Timer for boosting slotted mode paging RF priority */
+
+    CP_ACCESS_PROTECTION_TIMER,       /* 77 access protection timer */
+#ifdef MTK_DEV_C2K_IRAT
+    CP_PS_SERVICE_ACCESS_PROTECT_TIMER,         /* 78 PS service access protect timer */
+#endif
+    CP_REG_REJECT_BAR_TIMER,                /* 79  1xRTT reg reject bar timer*/
+    CP_IDLE_NO_SLEEP_PROTECT_TIMER,         /* 80 1xRTT Idle no sleep ptotect timer */
+    NUM_TIMERS                        /* This one MUST be last!!           */
+  }
+CPTimerId;
+
+
+/* NOTE: If this enum is changed, please update ets enum PETimerId in ps_trace.txt */
+
+
+  /* Frame Based Timers */
+  typedef enum
+  {
+    CP_TC_SERVICE_ACTION_FRAME_TIMER, /*  Service Action timer             */
+    NUM_FRAME_TIMERS                  /*  This one MUST be last!!          */
+  }
+CPFrameTimerId;
+
+
+
+
+  /* Call Processing Absolute Timer structure */
+  typedef struct
+  {
+    kal_int16 id;                 /* Timer ID   - for WBIOS         */
+    kal_uint32     value;              /* Timer Value                        */
+  } CPTimer;
+
+
+  /* Call Processing Frame Based Timer structure */
+  typedef struct
+  {
+    kal_bool        active;           /* Frame timer state                  */
+    kal_uint32       frameCount;       /* Current frame count                */
+#ifdef TRACEON
+    const char  *name;            /* Frame Timer Name - for TRACE etc.  */
+#endif
+  } CPFrameTimer;
+
+
+/*****************************************************************************
+ * Timer function prototypes
+ ****************************************************************************/
+
+  void cpInitTimers (void);
+  void cpInitNonRsvasTimers(void);
+  kal_bool cpStartTimer (CPTimerId timer, kal_uint32 interval);
+  void cpStopTimer (CPTimerId timer);
+  void cpStopAllNonRsvasTimers(void);
+  kal_bool cpIsTimerActive(CPTimerId timer);
+  kal_bool cpLocateTimer(kal_int16 id, CPTimerId *timer);
+
+#endif  /* _CPTIMER_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/cpver.h b/mcu/interface/protocol/as_c2k/1xrtt/cpver.h
new file mode 100644
index 0000000..10be1da
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/cpver.h
@@ -0,0 +1,84 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef CPVER_H
+#define CPVER_H
+
+#include "sysdefs.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define BOARD_TYPE_NAME_LENGTH 17
+
+typedef struct
+{
+  kal_uint32 FourBytesForBoundary;
+  char   SwVersionInforTag[24];  
+  char   CustomerName[20];           /* VIA/Nokia/Samsung etc*/
+  char   SWName[10];            /*sw name, such as VTUI3,Touchflow*/
+  char   BoardTypeName[BOARD_TYPE_NAME_LENGTH];          /*board type name defined in makefile_feature*/
+  char   BoardVersion[10];          /*such as P0, P1*/
+  kal_uint16 MajorVersion;               /* Major CP version, customer should be in charge of the management.*/
+  kal_uint16 MinorVersion;               /*Minor CP version, customer should be in charge of the management.*/
+  kal_uint16 ReviseVersion;               /*Revise CP version, customer should be in charge of the management.*/
+}SwVersionInfoT;
+
+SwVersionInfoT GetCustomerVersion(void);
+SwVersionInfoT GetPlatformVersion(void);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
+/**Log information: \main\vtui2_5x\2 2008-06-18 03:16:48 GMT dwang
+** HREF#240**/
+/**Log information: \main\vtui2_5x\3 2008-09-09 03:02:16 GMT dwang
+** HREF#1894**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_qwu_href14940\1 2010-10-09 05:50:51 GMT qwu
+** HREF#14940**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_qwu_href14940\2 2010-10-09 08:37:33 GMT qwu
+** HREF#14940**/
+/**Log information: \main\CBP7FeaturePhone\2 2010-10-11 01:45:29 GMT pchen
+** HREF#14940**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_wxiong_href14940\1 2010-10-13 03:51:36 GMT wxiong
+** HREF#14940**/
+/**Log information: \main\CBP7FeaturePhone\3 2010-10-13 04:40:23 GMT pfwu
+** CBP7FeaturePhone_wxiong_href14940**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_hxwang_href15115\1 2010-10-19 10:03:06 GMT hxwang
+** HREF#15115**/
+/**Log information: \main\CBP7FeaturePhone\4 2010-10-20 01:54:22 GMT zlin
+** Merge href 15115.**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/crc.h b/mcu/interface/protocol/as_c2k/1xrtt/crc.h
new file mode 100644
index 0000000..758ad5e
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/crc.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) 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     crc.h
+ *
+ * Purpose:    Header file for crc.c
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: crc.h $
+ *       Revision 1.2  2004/03/25 12:09:24  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:34  fpeng
+ *       Initial revision
+ *       Revision 1.3  2002/06/06 13:11:21  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/11/08 12:33:18  AMALA
+ *       Corrected CRC 16 bit calculation error.
+ *       Revision 1.1  2001/01/17 10:58:19  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/11/13 17:06:01  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.3  2000/08/23 22:05:24Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes
+ *       Revision 1.5  1999/05/17 22:42:43  mhayduk
+ *       Revised CRC30 algorithm.
+ *
+ *       Revision 1.4  1998/03/30 23:26:03  mhayduk
+ *       Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _CRC_H_
+
+  #define _CRC_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "sysdefs.h"
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+  void   crcSetEnableFlag  (kal_uint16 qualifier);
+/* Amala K. 11/07/01 - changed parameter len to kal_uint16 */
+  kal_uint16 crcCalculate16Bit (kal_uint8 *message, kal_uint16  len);
+  kal_uint32 crcCalculate30Bit (kal_uint8 *message, kal_uint32 len);
+  kal_bool   crcCheck16Bit     (kal_uint8 *message, kal_uint8  len);
+  kal_bool   crcCheck30Bit     (kal_uint8 *message, kal_uint16  len);
+
+
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/custom.h b/mcu/interface/protocol/as_c2k/1xrtt/custom.h
new file mode 100644
index 0000000..521b833
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/custom.h
@@ -0,0 +1,245 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:    custom.h
+ *
+ * Purpose:   Customer specified compile switches
+ *
+ ****************************************************************************
+ *
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: custom.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:24  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:35  fpeng
+ *       Initial revision
+ *       Revision 1.2  2002/06/06 13:11:30  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.1  2001/01/17 10:58:21  plabarbe
+ *       Initial revision
+ *       Revision 1.3  2000/12/05 17:44:50  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:25:25  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:07Z  fpeng
+ *       Initial revision
+ *       Revision 1.7  2000/09/23 02:44:54Z  rnookala
+ *       Commented out duplicate #defines (constants)
+ *       Revision 1.6  2000/09/08 23:56:41Z  RSATTARI
+ *       Added defines for the fields of the capability information record response.
+ *       Revision 1.5  2000/08/31 23:41:48Z  bcolford
+ *       Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *       Revision 1.4  2000/08/23 22:05:58Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.35  2000/02/22 17:09:55  scotvold
+ *       Changed CP_MAX_DATA_BURST_CHAR from 249 to 246,
+ *       to take into account MSG_LENGTH and CRC fields.
+ *
+ *       Revision 1.34  2000/02/18 23:35:01  gfrye
+ *       Added more configurable parameters for PRL list feature.
+ *       Added configurable parameters for Analog SMS feature.
+ *
+ *       Revision 1.33  2000/02/05 00:02:26  gfrye
+ *       Added parameter for number of broadcast messages that can be
+ *       screened for duplicates.
+ *
+ *       Revision 1.32  2000/01/22 01:48:31  scotvold
+ *       Moved channels to css_api.h
+ *
+ *       Revision 1.31  2000/01/22 00:29:29  gfrye
+ *       Added defines to support custom system selection.
+ *
+ *       Revision 1.30  2000/01/17 22:30:45  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.29  1999/10/21 16:58:15  dfischer
+ *       Changed c++ stype comment to ansi C
+ *
+ *       Revision 1.28  1999/10/21 15:48:54  gfrye
+ *       Added compile switch for Korean !S-95A data extensions.
+ *
+ *       Revision 1.3  2000/03/09 17:03:13Z  bcolford
+ *       Set the OP_MODE2 bit in the ENG_CUSTOM_OP_MODE
+ *       flag if AMPS is supported.
+ *       Revision 1.2.1.3  2000/03/09 15:33:16Z  bcolford
+ *       Added bit definition for AMPS OP_MODE2.
+ *       Revision 1.2  2000/03/01 18:06:06Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.1.1.1.1.1  1999/11/30 23:12:08Z  rsattari
+ *       Duplicate revision
+ *       Revision 1.1.1.1  1999/11/30 23:12:08Z  rsattari
+ *       Duplicate revision
+ *       Revision 1.29  1999/09/29 22:25:31  rsattari
+ *       BB changes for new T_ADD/T_DROP.
+ *       Revision 1.28  1999/09/20 19:08:47  rsattari
+ *       sync with patches.
+ *       Revision 1.20.1.2.1.15  1999/09/13 20:11:03  banister
+ *       Changed dynamic T_ADD and T_DROP thresh to have 0.5dB resolution and
+ *       be independently configurable.
+ *       Revision 1.20.1.2.1.14  1999/09/13 19:44:48  banister
+ *       Reduced the adaptive T_ADD and T_DROP thresholds.
+ *       Revision 1.20.1.2.1.13  1999/09/11 04:08:09  banister
+ *       Added an adaptive T_ADD and T_DROP threshold to accommodate 
+ *       situations where all pilots are below T_ADD.
+ *       Revision 1.20.1.2.1.12  1999/09/09 21:20:56  rsattari
+ *       2.10 patch 6.
+ *       Revision 1.5  1999/09/04 13:44:00  cdma
+ *
+ *       Revision 1.27  1999/09/02 20:33:49  gfrye
+ *       Added T53_PLUS_OR_95B compile switch for code common to 95B and
+ *       to T53 rev 3+.
+ *
+ *       Revision 1.26  1999/08/31 22:59:49  gfrye
+ *       Added new registration delay after failure timer.
+ *
+ *       Revision 1.25  1999/08/27 19:59:29  gfrye
+ *       Added OOSA configuration parameters to support the change from 3
+ *       OOSA phases to 4.
+ *
+ *       Revision 1.24  1999/08/18 23:48:07  gfrye
+ *       1. Replaced ENG_MAX_BAD_PAGE_CRC with ENG_MAX_BAD_PAGE_FRAME as the new page
+ *          channel monitoring scheme is based on a time between valid CRC's
+ *          rather than a number of bad CRC's.
+ *       2. Increased the history size from 3 to 7.
+ *
+ *       Revision 1.23  1999/08/13 21:30:20  gfrye
+ *       Added NOISE_THRESHOLD as follows.  No neighbor pilot will be considered a valid target
+ *       for handoff if its  signal strength is below the NOISE_THRESHOLD specifed in custom.h
+ *
+ *       Revision 1.22  1999/08/06 22:23:48  gfrye
+ *       Removed comment that is no longer valid.
+ *
+ *       Revision 1.21  1999/08/05 01:11:23  scotvold
+ *       Moved CP_BCAST_ADDRESS_MAX_SIZE to custom.h.
+ *
+ *       Revision 1.20  1999/07/28 20:02:00  gfrye
+ *       Added MAX_HISTORY_RECS to define the number of previously visited base
+ *       stations for which to store overhead information.
+ *       Replace old Idle Handoff Parameters with the parameters for the new more
+ *       general algorithm.
+ *
+ *       Revision 1.19  1999/07/22 23:23:04  scotvold
+ *       Added compile option for Auto Answer.
+ *
+ *       Revision 1.18  1999/07/07 21:22:38  scotvold
+ *       Separation of HT_MAX and T_MAX for idle handoff.
+ *
+ *       Revision 1.17  1999/07/01 16:27:17  dfischer
+ *       Added ..._CRC
+ *
+ *       Revision 1.16  1999/06/23 22:48:56  gfrye
+ *       Added compile option for ACCESS_ENTRY_HANDOFF_ALLOWED.
+ *       Added CP_ACCESS_ENTRY_HO_WEAK_PILOT_STRENGTH - threshold for trying a Access entry handoff.
+ *
+ *       Revision 1.14  1999/06/09 22:01:45  dfischer
+ *       Moved ACQ_SIZE and MSGQ_SIZE from tc_mtx.c to custom.th
+ *
+ *       Revision 1.13  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.12  1999/05/19 16:25:19  mhayduk
+ *       Added define for T53 MSD support.
+ *
+ *       Revision 1.11  1999/04/16 20:16:10  scotvold
+ *       Added checking of IHO and OOSA parameters.
+ *
+ *       Revision 1.10  1999/04/16 01:25:19  scotvold
+ *       Increased CP_MAX_BURST_DTMF_DIGITS to 255.
+ *
+ *       Revision 1.9  1999/04/13 19:17:27  scotvold
+ *       New Idle Handoff Algorithm.
+ *
+ *       Revision 1.7  1999/03/18 19:55:25  mhayduk
+ *       Added support for Searching Out of Service Area operation.
+ *
+ *       Revision 1.6  1999/03/03 19:35:28  mhayduk
+ *       Added new customer define to allow setting of default service
+ *       option.
+ *
+ *       Revision 1.5  1998/11/02 22:00:39  scotvold
+ *       Moved defines to custom.h
+ *
+ *       Revision 1.4  1998/10/21 00:04:07  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.3  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.2  1998/06/08 21:53:21  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.1  1998/05/01  18:13:54  scotvold
+ * Initial revision
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _CUSTOM_H_ 
+
+  #define _CUSTOM_H_ 1
+
+#include "pswcustom.h"
+
+#endif  /* _CUSTOM_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/digits.h b/mcu/interface/protocol/as_c2k/1xrtt/digits.h
new file mode 100644
index 0000000..698c779
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/digits.h
@@ -0,0 +1,148 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     digits.h
+ *
+ * Purpose:    Definitions for Digit-Handling Functions.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *  $Author: fpeng $
+ *
+ *  $Log: digits.h $
+ *
+ *  07 06 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  Correct copyright file header
+ *  Revision 1.2  2004/03/25 12:09:25  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.1  2003/05/12 15:38:36  fpeng
+ *  Initial revision
+ *  Revision 1.2  2002/06/06 13:11:34  chinh
+ *  Changed and Added Copyright
+ *  Revision 1.1  2001/01/17 10:58:23  plabarbe
+ *  Initial revision
+ *  Revision 1.1  2000/10/24 14:11:08  fpeng
+ *  Initial revision
+ *  Revision 1.3  2000/08/23 22:06:24Z  RSATTARI
+ *  Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *  Revision 1.10  1999/10/28 17:10:11  dfischer
+ *  Added is called address BCD
+ *
+ *  Revision 1.9  1999/10/13 22:25:32  dfischer
+ *  Added ascii2bcd
+ *
+ *  Revision 1.8  1999/07/16 21:53:24  gfrye
+ *  Removed unused functions.
+ *
+ *  Revision 1.7  1999/04/16 00:56:05  mhayduk
+ *  Modify interface for saving digits and retrieving last 6
+ *  digits for authentication purposes.
+ *
+ *  Revision 1.6  1999/04/15 01:35:49  mhayduk
+ *  Added support for storing encoded digit strings.
+ *  Added support for setting and storing authentication digits.
+ *
+ *  Revision 1.5  1998/10/20 23:58:23  mhayduk
+ *  Added T53 support.
+ *
+ *  Revision 1.4  1998/08/13 00:12:05  scotvold
+ *  Added DTMF support.
+ *
+ *  Revision 1.3  1998/03/30 23:26:03  mhayduk
+ *  Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ * 
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _DIGITS_H_
+
+  #define _DIGITS_H_ 1
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+ #define CP_MAX_DIGITS      32
+
+/* Order Qualifier for Stop Continuous DTMF order */
+#define TC_STOP_CONTINUOUS_DTMF 0xFF
+
+
+/**********************************************************************
+ * Global declarations
+ **********************************************************************/
+
+/* DTMF Digit BCD to ASCII conversion */
+extern const char tbcd_[];
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+/* Scratchpad function prototypes */
+void cpPutDialedDigits(char *digits,kal_bool encoded,kal_uint8 numDigits,
+                       kal_bool digitMode);
+char*  cpGetCalledAddress(void);
+kal_bool   cpIsCalledAddressBCD(void);
+void   cpGetLastSixDigits(char *data);
+kal_uint8  cpGetNumCADigits(void);
+
+kal_uint8   ascii2pbcd(char* dest, char* src, kal_uint8 numDigs);
+kal_uint8   ascii2bcd(char* dest, char* src, kal_uint8 numDigs);
+kal_uint8  cpConvertDigit (char digit);
+
+
+#endif  /* _DIGITS_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/eng_accs.h b/mcu/interface/protocol/as_c2k/1xrtt/eng_accs.h
new file mode 100644
index 0000000..a1575fe
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/eng_accs.h
@@ -0,0 +1,196 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     eng_accs.h
+ *
+ * Purpose:    Header file containing definitions for PE Access Substates.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.5 $
+ *    $Author: hans $
+ *
+ *       $Log: eng_accs.h $
+ *
+ *       10 26 2017 tina.ma
+ *       [MOLY00285322] [Bianco][O1][SRLTE][CT 6M C][LTE IOT][FT][SH][HW][TC-4GFT-07008]MT Failed 4 times
+ *       	
+ *       	.
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       06 22 2017 gavin.zhang
+ *       [MOLY00258188] [TE CAT][Bianco][C2K][MP1][N1] Externel (EE),0,0,99,/data/core/,1,modem,Trigger time:[2017-06-10 15:25:44.599061] md1:(MCU_core0.vpe0.tc0(VPE0)) [Fatal error(task)] err_code1:0x00000305 err_code2:0x8888016F err_code3:0xCCCCCCCC MD Offender:CPSW
+ *       	
+ *       	.
+ *
+ *       12 15 2016 sue.zhong
+ *       [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ *       c2k source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.5  2006/03/20 18:23:13  hans
+ *       Access substate filter added for messages and orders.  Filter added in pageMsgInAccess() and pageMsgInUpdateOHDInfo(). Missing CP_AUTH_CHALL_MESSAGE case added to pageMsgInUpdateOHDInfo(). 
+ *       Revision 1.4  2005/05/20 14:24:52  vsethuraman
+ *       CR 6129 :- cpGetRestartPageChan() function declaration
+ *       Revision 1.3  2004/09/28 16:29:47  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.2  2004/03/25 12:09:25  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:38  fpeng
+ *       Initial revision
+ *       Revision 1.4  2002/06/06 13:11:46  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2002/05/21 10:44:11  bsharma
+ *       Added Prototype for checkAccessEventQueue()
+ *       Revision 1.2  2001/01/29 18:20:51  dstecker
+ *       new access probe architecture
+ *       Revision 1.1  2001/01/17 10:58:27  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:09  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:06:29Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.9  1999/12/14 21:34:57  gfrye
+ *       Added routines to initialize all those static kal_bools
+ *
+ *       Revision 1.8  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.7  1998/07/29 04:20:04  mhayduk
+ *       Added access handover support.
+ *
+ *       Revision 1.6  1998/07/10 21:04:35  mhayduk
+ *       Added prototype for restarting Page Channel in Access.
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.4  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _ENG_ACSS_H_
+
+  #define _ENG_ACSS_H_ 1
+
+
+/****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "status.h"
+#include "engine.h"
+
+/****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+  #define CP_ACCESS_PAGE            1     /* Page response access            */
+  #define CP_ACCESS_REGISTRATION    2     /* Registration access             */
+  #define CP_ACCESS_ORIGINATION     3     /* Origination access              */
+  #define CP_ACCESS_RESPONSE        4     /* Order & Message response access */
+  #define CP_ACCESS_DATABURST       5     /* Data message transmission       */
+  #define CP_ACCESS_PAGE_LOST 	   10     /* Access fail reason is Page lost */
+  
+  #define CP_MAX_ACCESS_SUB_STATES  6
+ 
+/*****************************************************************************
+ * Data Structures
+ ****************************************************************************/
+
+typedef enum
+{
+   ACH,
+   EACH
+} ChannelTypeT;
+
+/****************************************************************************
+ * Function prototypes
+ ****************************************************************************/
+  void    cpRestartPageChanInAccess(void);
+  kal_bool    cpGetRestartPageChan(void);
+  void    cpSuccessfulAttemptInAccess(void);
+  void    cpSetAccessRequest(kal_uint8 type);
+  kal_uint8    cpGetAccessReason(void);
+  kal_uint8    cpGetAccessFailReason(void); 
+  void    cpSetAccessFailReason(kal_uint8 reason); 
+  kal_bool    cpGetAccessHOIndicator(void);
+  void    cpSetAccessHOIndicator(kal_bool ind);
+
+  CPState cpUpdateOverheadInfo( Callback *event );
+  CPState cpPageResponse( Callback *event );
+  CPState cpOrderMessageResponse( Callback *event );
+  CPState cpOriginationState( Callback *event );
+  CPState cpRegistrationState( Callback *event );
+  CPState cpMessageTransmissionState( Callback *event );
+  void initializeEngAccs(void);
+  void checkAccessEventQueue(void);
+  void cpEngStoreAccessEvent(Callback *accessEvent, Callback *event);
+  CPState cpProcessGeneralPageInAccess(PChMessage *msg);
+  void cpResetAccessCollisionMsgSeq(void);
+  kal_uint8 cpGetAccessCollisionMsgSeq(void);
+  void cpSetAccessSystemTimerIndicator( kal_bool restIndicator );
+  void cpResetMapeRegFailCount(void);
+  void SetAuthrValid(kal_bool valid);
+  kal_bool GetAuthrValid(void);
+  kal_bool cpGetAccessSystemTimerIndicator(void);
+  kal_bool cpIsFirstProbeCompelted(void);
+  void cpSetFirstProbeCompleted(kal_bool firstProbeCompleted);
+#endif  /* _ENG_ACSS_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/eng_idle.h b/mcu/interface/protocol/as_c2k/1xrtt/eng_idle.h
new file mode 100644
index 0000000..6524fd7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/eng_idle.h
@@ -0,0 +1,537 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     eng_idle.h
+ *
+ * Purpose:    Header file for eng_idle.c
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.13 $
+ *   $Modtime$
+ *    $Author: hans $
+ *
+ *       $Log: eng_idle.h $
+ *
+ *       09 18 2020 tina.ma
+ *       [MOLY00555839] ?Maxwell-AN00A 10.1.1.160?APR????modemcrash
+ *       	
+ *       	.
+ *
+ *       09 18 2020 tina.ma
+ *       [MOLY00504457] [Titan93] ESVCINFO issue fix
+ *       	
+ *       	.
+ *
+ *       11 05 2019 tina.ma
+ *       [MOLY00457226] [MT6885][Petrus][MP1][SQC][SI1][C2K][C2K Regression][ASSERT] file:mcu/l1/mml1/mml1_tx/md97/src/mml1_tx_txsys_glb.c line:385 p1:0x00000000 p2:0x00000000 p3:0x00000000   ELM r/wlat:PASS AP detect MDEE time: 7422.856205
+ *       	
+ *       	.
+ *
+ *       01 21 2019 tina.ma
+ *       [MOLY00379869] [Gen97]merge code from UMOLYE TRUNK
+ *       	
+ *       	merge to VMOLY
+ *       	bar bad cell
+ *
+ *       01 17 2019 tina.ma
+ *       [MOLY00379869] [Gen97]merge code from UMOLYE TRUNK
+ *       	
+ *       	merge to VMOLY
+ *       	1. ECAM
+ *       	2. UT
+ *       	3. local release
+ *       	4. does not trigger registration in sleep mode
+ *
+ *       12 18 2018 danny.dai
+ *       [MOLY00370973] [MT6779][Lafite][P0][BSP+][MP2][CTC FT][SH][om_c2k6m][Benchmark][FT_SQC_CS Performace_08]DUT MTC failure 12 times however REF-MI 8 se failure 1 times
+ *       	
+ *       	VMOLY.EVB.SEPT.DEV: opt for PCH resync denied issue
+ *
+ *       05 15 2018 tina.ma
+ *       [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ *       	
+ *       	MSPM feature merge to UMOLYE
+ *
+ *       02 09 2018 tina.ma
+ *       [MOLY00305248] [6739S10¡¿¡¾ÓÃÀý²âÊÔ¡¿¡¾CDMA¡¿¡¾²ÊÐÅ¡¿¿¨1λÖ÷¿¨£¬Ê¹Óÿ¨2·¢ËͲÊÐÅ£¬ÌáʾÇл»Êý¾ÝͨµÀÖÁ¿¨2£¬²ÊÐÅ·¢ËÍʧ°Ü
+ *       	
+ *       	.
+ *
+ *       12 06 2017 tina.ma
+ *       [MOLY00294263] [Zion][O1][SRLTE][CT 6M C][LTE IOT][FT][SH][HW][CAT][SWITCH_DATA_ON]System API Dump,741,797,99,/data/vendor/core/,1,,mtkrild:AT command pending too long. assert!!! AT cmd: EC2KCMGS.timer: 600000ms
+ *       	
+ *       	<saved by Perforce>
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *
+ *       04 18 2017 jacky.wu
+ *       [MOLY00243091] [BIANCO][MT6763][C2K][RDIT][Stress][KAL][UE][core0,vpe0,tc0(vpe0)] Assert fail: l1dspage.c 772 0x1002 0x6 0x0 - L1D_MDM
+ *       	
+ *       	.Sync clock calibration state between L1 & L3.
+ *
+ *       02 15 2017 danny.dai
+ *       [MOLY00229716] [new feature]C2K EM Develop: 1xL3 and EvL3 module codes
+ *
+ *       	L3 EM: 1xrtt and evdo code for EM
+ *
+ *       01 10 2017 gavin.zhang
+ *       [MOLY00223858] [6293][C2K]Sync PSW code from C2K CBr to UMOLYA trunk
+ *
+ *       	merge code from T0 to trunk.
+ *
+ *       12 15 2016 sue.zhong
+ *       [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ *       c2k source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.13  2006/03/17 18:16:28  hans
+ *       UTS requirement to support CP Spy CP PE QPCH Meas Dump with backward compatibility to cbp4x
+ *       Revision 1.12  2006/03/03 13:40:36  vsethuraman
+ *       CR7207 :- PN310 CSS and ERI changes.
+ *       Revision 1.11  2005/12/21 11:31:54  hans
+ *       Updated qpch algorithm and new L1 interface.
+ *       Revision 1.10  2005/08/17 14:10:04  hans
+ *       CR6900 - Enhanced qpch indicator detection algorithm [DSPM/L1D/PSW]. CR6902 - Immediate PSW-L1D wake message for PCH/FCCCH
+ *       Revision 1.9  2005/06/14 15:26:58  wfu
+ *       - Fix CR 5245 and 6181: Put the functions' prtotypes related to the Silent retry.
+ *       Revision 1.8  2005/05/20 14:22:34  vsethuraman
+ *       CR 6129 :- cpGetRestartFcsch() function declaration
+ *       Revision 1.7  2005/05/06 18:08:23  hans
+ *       Slotted for FCCCH/BCCH added. Test mode command for BCCH enable/disable and sleep delay added.
+ *       Revision 1.6  2005/04/06 16:31:39  dstecker
+ *       Release A mods
+ *       Revision 1.5  2005/03/18 11:43:28  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.4  2004/09/28 16:31:39  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.3  2004/04/06 14:02:05  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:26  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2004/02/10 12:50:42  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.17  2003/12/12 09:53:54  mclee
+ *          - For distinction between pended user request and other pended requests in
+ *            idle, made following name changes:
+ *            checkForPendedRequest() to checkForPendedUserRequest()
+ *            clearPendedEvent() to clearPendedUserEvent()
+ *            pendedEventType() to pendedUserEventType()
+ *          - Added function prototypes for Delayed Idle HO
+ *            kal_bool checkPendedIdleHORequest(void)
+ *            void pendIdleHORequest(IdleHOParms *hoParms)
+ *            void clearPendedIdleHORequest(void)
+ *       Revision 1.16  2003/11/06 11:38:51  ameya
+ *       Added prototype for origPending().
+ *       Revision 1.15  2003/04/30 09:32:59  mclee
+ *       Modified function prototypes to support changes in eng_idle.c
+ *       Revision 1.14  2002/12/03 15:02:01  akayvan
+ *       Moved the Spirent's spy structure declaration to here per Chuck's
+ *       request.
+ *       Revision 1.13  2002/11/13 14:48:07  byang
+ *       Add function prototype declaration for cpSetCclmChChangeStatus().
+ *       Revision 1.12  2002/10/24 13:43:21  akayvan
+ *       Per CRs 1429/1470, added declaration for functions:
+ *       cpPerformImmedL1dWake(), and cpCheckForQPCHQ1Q2Modes().
+ *       Revision 1.11  2002/09/10 16:50:03  bcolford
+ *       Add a prototype to get rid of a warning in callback.c
+ *       Revision 1.10  2002/09/03 18:25:14  bcolford
+ *       Add a prototype to get current value of AMPS Slotted mode
+ *       enable flag.
+ *       Revision 1.9  2002/08/23 10:10:09  akayvan
+ *       Per system's request added ETS capabilty to modify all QPCH thresholds.
+ *       Revision 1.8  2002/07/15 13:10:41  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.7  2002/06/18 18:05:00  akayvan
+ *       QPCH Phase2 mods.  Added declarations for functions that
+ *       support the new ETS commands to set QPCH params, and mode.
+ *       Revision 1.6  2002/06/06 13:11:53  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.5  2002/05/31 20:07:21  akayvan
+ *       QPCH/PI mods.
+ *       Revision 1.4  2002/01/17 17:16:15  akayvan
+ *       Implemented Slotted Mode.
+ *       Revision 1.3  2001/12/14 17:09:04  mclee
+ *       prototype cpGetSleepModeActive()
+ *       Revision 1.2  2001/07/18 15:05:20  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.1  2001/01/17 10:58:31  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/22 11:42:41  byang
+ *       Removed functions for getting and setting IS2000 network
+ *       parameters since they are moved to IS2000_NETWORK_PARAMETER global data block.
+ *       Revision 1.3  2000/12/05 17:44:57  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:25:33  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:10Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:06:32Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.21  2000/03/09 21:38:38  gfrye
+ *       Added functions for accessing the pended user event queue.
+ *
+ *       Revision 1.20  1999/12/14 21:34:57  gfrye
+ *       Added routines to initialize all those static kal_bools
+ *
+ *       Revision 1.19  1999/12/09 21:54:11  gfrye
+ *       Added new function prototypes to check for pending originations
+ *       or emergency calls.
+ *
+ *       Revision 1.18  1999/08/31 00:29:46  gfrye
+ *       Added gotPilotMeasurementInIdle so that ho_cc.c can signal when a pilot
+ *       measurement has been received.
+ *
+ *       Revision 1.17  1999/08/18 23:35:52  gfrye
+ *       Added the new prototype wakeL1 to record that L1 has indicated that it
+ *       is currently awake.
+ *
+ *       Revision 1.16  1999/07/16 21:36:44  gfrye
+ *       Added prototype for reportAccessFail.
+ *
+ *       Revision 1.15  1999/07/14 17:22:03  gfrye
+ *       Added prototype for new function cpRegPending.
+ *
+ *       Revision 1.14  1999/06/20 04:44:53  scotvold
+ *       Removed redundant declaration.
+ *
+ *       Revision 1.13  1999/01/20 19:44:11  mhayduk
+ *       Added NDSS support.
+ *
+ *       Revision 1.12  1998/11/27 22:25:59  mhayduk
+ *       Added slotted mode test capability.
+ *       Added support for radio not tuned indication.
+ *       Removed cpRegAccessDueToConfig() since engine can be
+ *       called recursivelynow.
+ *
+ *       Revision 1.11  1998/11/20 16:19:01  mhayduk
+ *       Added test mode support to enable/disable slotted mode.
+ *
+ *       Revision 1.10  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.9  1998/07/29 04:20:04  mhayduk
+ *       Added access handover support.
+ *
+ *       Revision 1.8  1998/06/09 17:53:29  mhayduk
+ *       Added prototype for accepting registration request from new config.
+ *
+ *       Revision 1.7  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _ENG_IDLE_H_
+
+  #define _ENG_IDLE_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "engine.h"
+#include "systime.h"
+#include "pswapi.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+/* primary paging channel is Walsh code 1 */
+#define ENG_PRI_PAGE_CHAN                   1
+
+/* primary broadcast control channel is Walsh code 1 */
+#define ENG_PRI_BROADCAST_CONTROL_CHAN      1
+
+#define SLT_PAGING_PRIOR_OPT /* switch for feature slotted mode paging priority boost */
+#define         REACQ_FAIL_COUNTER_MAX  3
+extern kal_uint8    _reacqFailCounter;
+extern kal_bool     _hasRcvValidPageMsg;
+
+typedef enum
+{
+   FCSCH_UNKNOWN,
+   FCSCH_PCH,
+   FCSCH_BCCH_SR1_NON_TD,
+   FCSCH_BCCH_SR1_TD_OTD,
+   FCSCH_BCCH_SR1_TD_STS,
+   FCSCH_BCCH_SR3
+} FcschTypes;
+
+typedef enum
+{
+   PE_PCH   = 0,
+   PE_QPCH1 = 1,
+   PE_QPCH2 = 2,
+   PE_CCI   = 3,
+   PE_FCCCH = 4,
+   PE_BC    = 5
+} SleepType;
+
+/* Qpch Paging Indicator Test Mode Override */
+typedef enum
+{
+   TM_PI_OFF = 0,
+   TM_PI_ON  = 1,
+   TM_PI_UNDETERMINED = 2,
+   TM_PI_ERASURE = 3,
+   TM_PI_AUTO = 4
+} QpchPiTestModeType;
+
+/* In QPCH Test Mode, when position is set to 0xFFF, calculate using hash */
+#define QPCH_TEST_POSITION_AUTO 0xFFF
+#define QPCH_TEST_MODE_OFF     ((QPCH_TEST_POSITION_AUTO<<4)|TM_PI_AUTO)
+
+
+/* Definitions for VZW */
+#define MAX_BAD_SECTOR_NUM      5
+#define MAX_FAIL_NUM_TO_BYPASS  3
+#define PSW_CAMP_FLOOR_RX_PWR   (-100)  /* Floor for camping on receive power, dBm */
+#define PSW_CAMP_FLOOR_ECIO     26      /* Floor for IHO to remaining set Ec/Io, -13dB */
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8   failNum;
+    kal_uint32  timeStamp;
+    kal_uint16  pilotPN;
+} PACKED_POSTFIX  BadSectorT;
+
+#ifdef SLT_PAGING_PRIOR_OPT
+typedef PACKED_PREFIX struct
+{
+    kal_uint32 timeStamp; /* in unit of 20ms */
+    kal_bool   mtCall;
+} PACKED_POSTFIX LatestCallInfoT;
+
+#define MAX_LATEST_CALL_NUM 3
+#define MAX_TIME_DURAING    (3 * 60 * 1000 / 20)  // 9000 frames, 3 min
+typedef PACKED_PREFIX struct
+{
+    LatestCallInfoT list[MAX_LATEST_CALL_NUM];
+    kal_uint8       num;
+    kal_uint8       earliest;
+} PACKED_POSTFIX LatestCallInfoListT;
+#endif
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+  void gotPilotMeasurementInIdle(void);
+  void cpSetPrat(PageChRate rate);
+  void cpSetPageChs(kal_uint8 pageChs);
+  void cpSetPageChans(kal_uint8 numChans);
+  void cpSetMsgEntryHO(kal_bool msgEntryHo);
+  kal_uint8 cpGetPageChans(void);
+  kal_uint8 cpGetPageChs(void);
+  PageChRate cpGetPrat(void);
+
+  void cpRestartFcsch(void);
+  kal_bool cpGetRestartFcsch(void);
+  void cpStartFCCCHMonitoring(void);
+  FcschTypes determineBroadcastChanType( void );
+
+  void gotPilotMeasurementInIdle(void);
+  void cpSetPrat(PageChRate rate);
+  void cpSetPageChs(kal_uint8 pageChs);
+  void cpSetPageChans(kal_uint8 numChans);
+  void cpSetMsgEntryHO(kal_bool msgEntryHo);
+  kal_uint8 cpGetPageChans(void);
+  kal_uint8 cpGetPageChs(void);
+
+  PageChRate cpGetPrat(void);
+  void cpRestartFcsch(void);
+  void cpResetFcsch(void);
+  kal_bool cpFilterFrameSlot(WbiosSystime time);
+  void cpSetPageChannelAssignmentChange(void);
+#ifdef MTK_DEV_C2K_IRAT
+  kal_bool cpGetPageChannelAssignmentChange(void);
+#endif
+  void cpSetAttemptedPowerDownReg(void);
+  void cpClearAttemptedPowerDownReg(void);
+#ifdef MTK_DEV_C2K_IRAT
+kal_bool cpIsAttemptedPowerDownReg(void);
+#endif
+  void cpSetCclmChChangeStatus( const kal_bool status );
+  void cpSetStrongPilot(HOPilotInfo *pilotInfo);
+  void cpSetPCHAssignedPilot(IdleChangePilotSet *pilotInfo);
+  void cpSetRetransmissionState(CPState retransmitState);
+  void cpCDMASilentRetryReset(void);
+  kal_bool cpIsSlottedModeEnabled(void);
+  CPState cpIdleState(Callback *event);
+  kal_bool cpIsEXT_SYS_PAR_MSG_SEQCurrent(void);
+  void cpRegPending(void);
+  void reportAccessFail(void);
+  void wakeL1(kal_uint8 status);
+  void initializeEngIdle(void);
+
+  /* Pending User Request Functions */
+  CPState cpHandleOriginationRequest(Callback *event, kal_bool *rsvasOldReleasedNewFail);
+  kal_uint8 checkForPendedUserRequest(Callback *event);
+  kal_bool cpPendUserRequest(Callback *event);
+  kal_uint8 pendedUserEventType(void);
+  void clearPendedUserEvent(void);
+  kal_uint8 checkForPendedEngRequest(void);
+  void clearPendedEngRequest(void);
+  kal_bool origPending(void);
+  kal_bool clearDelayedOrig(void);
+  void cpSetQpchModeEnableFlag(kal_uint16 qualifier, kal_uint16 value);
+  void cpSetT_Slotted(kal_uint8 t_slotted);
+  void cpSetSlotted(kal_bool slotted);
+  kal_bool cpGetSlottedModeEnableFlag (void);
+  kal_bool cpGetSleepModeActive(void);
+  void cpSlotIsComplete(void);
+  void cpDisableSlottedMode(void);
+  void cpSetQpchSleepWakeParams(kal_bool QpchModeEnabled, WakeModeT WakeMode, SleepType SleepCmd);
+  kal_bool cpGetQpchModeEnabled(void);
+  WbiosSystime cpGetPrevQpchSlotFrame(void);
+  WbiosSystime cpGetQpchSlotFrame(void);
+  kal_uint16 cpGetQpchPIPositionR1(void);
+  kal_uint16 cpGetQpchPIPositionR2(void);
+  kal_uint8 cpGetSlotCycleIndex(void);
+  kal_uint16 cpGetPageSlot(void);
+  void cpSetQpchPi1TestMode(kal_uint16 Pi1TestMode);
+  void cpSetQpchPi2TestMode(kal_uint16 Pi2TestMode);
+  kal_uint8 cpIdleGetWakeMode(void);
+  kal_uint8 cpIdleGetNextWakeMode(void);
+  /* Re-Origination Related Functions */
+  void cpStartDelayedOrig(void);
+  void cpDelayedOrigTimeout(void);
+  void cpResetReOrig(void);
+  void cpOrigFail(void);
+  void cpInitReOrig(void);
+  /* SR finish handler..*/
+  void cpSilentRetryFinished(kal_bool ForceFinish);
+  kal_bool cpIsSRFinishedPaused(void);
+  kal_bool cpCheckForQPCHQ1Q2Modes(void);
+  kal_bool cpCheckForQPCHModes(void );
+
+  /* Pended Slotted Mode Idle HO Functions */
+  kal_bool checkPendedIdleHORequest(void);
+  void pendIdleHORequest(IdleHOParms *hoParms);
+  void clearPendedIdleHORequest(void);
+
+  void cpBCCHMonitorStart( const SysBandChannelT         *pChannel,
+                              const kal_uint16              pilotPn,
+                              const kal_uint8               walshCode,
+                              const BcchRate            brat,
+                              const kal_bool                tdSupported,
+                              const Sr1TdModes          tdMode,
+                              const Sr1TdPowerLevel     tdPwrLevel,
+                              const kal_uint8               crat,
+                              const Longcode            *pLcMask );
+  void cpBCCHMonitorStop( void );
+  void cpBCCHStateStop( void );
+  void cpCDMASilentRetryInSleep(void);
+  void cpIdleSlottedVeto(PswSlottedVetoFlagT flag, kal_bool vetoSlotted);
+  PswSlottedVetoFlagT cpGetSlottedVeto(void);
+  kal_bool cpIsOrigRetryTimerActive( kal_uint16 OrigSO );
+  CpIdleSubStateT cpGetIdleSubState(void);
+  kal_bool cpGetCCLMStatus(void);
+  kal_bool cpIdleGetL1asleep(void);
+  void cpIdleSetL1asleep(kal_bool sleep);
+  kal_bool cpIdleGetSimQpchEnabled(void);
+  void cpIdleSetSimQpchEnabled(kal_bool enabled);
+  kal_bool cpIdleGetQpchCciEnabled(void);
+  void cpIdleSetQpchCciEnabled(kal_bool enabled);
+  kal_bool cpIdleGetDynamicQpchCtrl(kal_uint16* threshLow, kal_uint16* threshHigh);
+  kal_bool cpIdleSetDynamicQpchCtrl(kal_bool enabled, kal_uint16 threshLow, kal_uint16 threshHigh);
+  WbiosSystime cpGetNextWakeUpSlotTime(WbiosSystime currentTime);
+  QpchPiStat cpGetQpchInd(void);
+
+  void cpInitBadSectorList(void);
+  kal_bool cpIsInBadSectorList(kal_uint16 pn);
+  void cpAddBadSectorIntoList(kal_uint16 pn);
+  void cpIncBadSectorInList(kal_uint16 pn);
+  kal_bool cpIsByPassBadSectorInList(kal_uint16 pn, kal_uint32 syncTime, kal_uint8 failNumToByPass);
+  kal_bool cpDelBadSectorFromList(kal_uint16 pn);
+  void cpDelOverdueSectorFromList(kal_uint32 systemTime);
+  void cpSetHashToUnavariableCh (kal_bool flag);
+  kal_bool cpGetHashToUnavariableCh (void);
+
+#ifdef MTK_DEV_C2K_IRAT
+void cpRsvasSuspendClearPendContext(void);
+void cpIdleAbortCallForLocalRelease (void);
+#endif
+
+void cpSetL1ClkCalFlag (kal_bool flag);
+kal_bool cpGetL1ClkCalFlag (void);
+void cpIdleAbortMoCall (CallProcessingEventT event);
+
+#ifdef SLT_PAGING_PRIOR_OPT
+void cpAddLatestCallInfoList(kal_uint32 time, kal_bool mtCall);
+void cpResetLatestCallInfoList(void);
+kal_bool cpLatestCallCriteriaMatch(void);
+#endif
+
+kal_bool cpIdleNeedSlotted(void);
+
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/engine.h b/mcu/interface/protocol/as_c2k/1xrtt/engine.h
new file mode 100644
index 0000000..ae1a8c7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/engine.h
@@ -0,0 +1,1078 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     engine.h
+ *
+ * Purpose:    Header file for the Protocol Engine.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *
+ *       $Log: engine.h $
+ *
+ *       04 01 2020 yanfeng.xu
+ *       [MOLY00509275] [MT6875][Margaux][Q0][MP3][SQC][China][Shanghai][Suburb][5GMM][NSA][Internal][FT][MDST][CAT][CU+CT][ASSERT] file:mcu/l1/ll1/src/mll1_main.c line:20892
+ *
+ *       07 25 2019 tina.ma
+ *       [MOLY00424781] [GSMA TS.37] block illegal UE for multiple SIM
+ *       	
+ *       	GSMA C2K L3 part
+ *
+ *       01 17 2019 tina.ma
+ *       [MOLY00379869] [Gen97]merge code from UMOLYE TRUNK
+ *       	
+ *       	merge to VMOLY
+ *       	1. ECAM
+ *       	2. UT
+ *       	3. local release
+ *       	4. does not trigger registration in sleep mode
+ *
+ *       09 11 2018 tina.ma
+ *       [MOLY00350570] [SE3][SIP][Cervino][Sanity]In SRLTE mode,During sim2 CU mo call,always on the dialing interface and no voice prompts
+ *       	
+ *       	.
+ *
+ *       09 10 2018 yanfeng.xu
+ *       [MOLY00348715] [UMOLYE][EVDO]remove assert on 97
+ *
+ *       12 15 2017 tina.ma
+ *       [MOLY00296406] [MT6763][Bianco][O1][MP2.0][MP2 Regression][Overnight][SZ][CU+CT][4GMM][ASSERT] file:mcu/pcore/modem/common/rsva/rsvas/src/rsvas_utils.c line:482
+ *       	
+ *       	.
+ *
+ *       11 08 2017 tina.ma
+ *       [MOLY00288039] [MT6763][Bianco][N1][MP1.5][WW FT][China][Shenzhen][SIM1:CU][SIM2:CT][ASSERT] file:mcu/pcore/modem/lte_sec/errc/conn/src/errc_conn_main.c line:1146
+ *       	
+ *       	.
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 04 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       ::KAL type - L3, folder ps
+ *
+ *       05 19 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	Fix L3 DHL trace enum description
+ *
+ *       05 05 2017 tina.ma
+ *       [MOLY00247117] [Rose][Bianco N1]The Externel (EE),0,0,99,/data/core/,1,modem,Trigger time:[2017-04-13 14:33:14.932569]md1:(MCU_core0.vpe1.tc1(VPE1)) [ASSERT](Once)
+ *       	
+ *       	L1d_init_cnf.
+ *
+ *       04 27 2017 gavin.zhang
+ *       [MOLY00245533] [BIANCO][MT6763][RDIT][C2K][SRLTE][Try run][CMW500]Assert fail: xl1fhrtbaw.c 474 0x1104 0xc 0x0
+ *       	
+ *       	.
+ *
+ *       04 18 2017 jacky.wu
+ *       [MOLY00243091] [BIANCO][MT6763][C2K][RDIT][Stress][KAL][UE][core0,vpe0,tc0(vpe0)] Assert fail: l1dspage.c 772 0x1002 0x6 0x0 - L1D_MDM
+ *       	
+ *       	.Sync clock calibration state between L1 & L3.
+ *
+ *       03 06 2017 golden.yang
+ *       [MOLY00226193] [6293][C2K]Merge C2K Feature£¨NST, Tx Pwr Meter etc£© Code CL from T0 to Trunck
+ *       Merge the Code of NST to TRUNCK Branch
+ *
+ *       02 21 2017 golden.yang
+ *       [MOLY00230944] [6293][C2K][BringUp]NSFT Mode BringUp Update for 1XRTT in 93m
+ *
+ *       	nst relation for 93M
+ *
+ *       01 05 2017 sue.zhong
+ *       [MOLY00218409] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W1701)
+ *       merge c2k source
+ *
+ *       12 01 2016 sue.zhong
+ *       [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ *       Update C2K source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.14  2006/03/16 11:59:10  mclee
+ *       - Update prototype engRelayOutOfServiceAreaParameters() to include scan time.
+ *       Revision 1.13  2006/01/24 12:38:51  wavis
+ *       Fix GetNam to always get active NAM.
+ *       Revision 1.12  2006/01/12 16:21:35  vxnguyen
+ *       Fixed compile errors when AMPS was not included.
+ *       Revision 1.11  2006/01/11 15:13:13  blee
+ *       Changing function parameters
+ *       Revision 1.10  2005/12/21 11:32:12  hans
+ *       Updated qpch algorithm and new L1 interface.
+ *       Revision 1.9  2005/08/17 14:10:36  hans
+ *       CR6900 - Enhanced qpch indicator detection algorithm [DSPM/L1D/PSW]. CR6902 - Immediate PSW-L1D wake message for PCH/FCCCH
+ *       Revision 1.8  2005/05/09 17:46:32  wfu
+ *       Fix CR 6202: Add struct SilentRetryInfo.  Add parameters passed in engRelaySRSetSilentRetryMsg().
+ *       Add prototype for engRelayGetSRInf().  Delete engRelaySRIsSilentRetryEnabled() prototype.
+ *       Revision 1.7  2005/04/06 16:33:04  dstecker
+ *       Release A mods
+ *       Revision 1.6  2005/03/18 11:43:59  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.5  2004/09/28 16:34:48  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.4  2004/06/21 17:22:34  dstecker
+ *       Idle Handoff for Rev C Changes
+ *       Revision 1.3  2004/04/06 14:02:03  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:29  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.3  2004/02/10 12:50:45  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.43  2003/12/02 18:02:55  akayvan
+ *       Added engine event ENG_NO_IDLE_HANDOFF.
+ *       Revision 1.42  2003/11/06 11:42:44  ameya
+ *       Added ENG_SYS_REDIRECTION_END_TIME, ENG_IND_FORCE_ANALOG_MODE and ENG_IND_MORE_PREF_SCAN_TIMEOUT. Also prototypes for engRelayForceAnalogMode() and engRelaySRGetSilentRetryStatusMsg().
+ *       Revision 1.41  2003/06/26 13:52:07  byang
+ *       CR#2394: Modified engRelaySetNewIHOparameters() prototype
+ *       declaration to include MinNghbrThr.
+ *       Revision 1.40  2003/04/30 09:34:01  mclee
+ *       Added Engine request RQ_PAGE_RESPONSE
+ *       Revision 1.39  2003/04/25 14:11:25  byang
+ *       CR#2171: Add two events: ENG_IND_FSCH_STARTED and
+ *       ENG_IND_FSCH_TERMINATED.
+ *       Revision 1.38  2003/03/07 11:39:04  byang
+ *       CR #1810: Add function prototype declaration for
+ *       engRelaySetAccessHoParams().
+ *       Revision 1.37  2002/11/26 19:38:25  hans
+ *       Engine relay function for resource control declared
+ *       Revision 1.36  2002/09/30 15:15:26  mshaver
+ *       Changes to support the single NAM data structure type
+ *       definition PswIs95NamT, of type packed.
+ *       Revision 1.35  2002/09/17 18:20:04  akayvan
+ *       cpSetWakeData() parameters were updated for Spirent's QPCH
+ *       Spy.
+ *       Revision 1.34  2002/08/23 10:10:33  akayvan
+ *       Per system's request added ETS capabilty to modify all QPCH thresholds.
+ *       Revision 1.33  2002/07/15 13:11:53  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.32  2002/07/11 18:30:09  byang
+ *       CR #889: Removed unused field from Callback data type.
+ *       Revision 1.31  2002/06/18 18:07:59  akayvan
+ *       QPCH Phase2 mods.  Added new declaration for
+ *       engRelayTestMode(), and  cpSetWakeData().
+ *       Revision 1.30  2002/06/14 17:14:17  chinh
+ *       Added function prototype engRelayL1dAccessComplete().
+ *       Revision 1.29  2002/06/13 13:51:17  hans
+ *       Not used statistics function engRelayGetAccStats(), engRelayGetPagStats(), engRelayGetMux1FORStats() and engRelayGetMux2FORStats() removed.
+ *       Revision 1.28  2002/06/06 13:12:11  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.27  2002/06/04 20:03:36  hans
+ *       Layer2 statistics not used anymore disabled with ifdef's.
+ *       Revision 1.26  2002/05/31 20:07:35  akayvan
+ *       QPCH/PI mods.
+ *       Revision 1.25  2002/05/29 15:23:19  ameya
+ *       Added events ENG_IND_SYNC_CSS_FAIL and ENG_IND_SYNC_CSS_PASS to report to the engine whether the sync message passed or failed CSS. Added prototype for engRelaySyncCssDone().
+ *       Revision 1.24  2002/05/08 16:47:08  byang
+ *       Modified engRelayPMRMParams() input parameter for F-SCH.
+ *       Add data structure CPPmrmParms to accommodate F-SCH.
+ *       Revision 1.23  2002/03/28 18:22:32  hans
+ *       is2000 rev 0 add 2, retrievable and settable parameters implemented.
+ *       CR503: get retrievable parameter implemented.
+ *       CR508: set retrievable parameter implemented
+ *       Revision 1.22  2002/01/28 11:36:11  byang
+ *       Add constant ENG_IND_RSCH_STARTED and function prototypes for:
+ *       engRelayHspdActiveControlHold(), engRelayRschRelInd(), engRelayDataBufferStatus(), and engRelayRevSchRequest().
+ *       Revision 1.21  2002/01/17 17:17:44  akayvan
+ *       Implemented Slotted Mode mods.
+ *       Revision 1.20  2002/01/10 17:12:17  AMALA
+ *       Added emergency mode processing for new system selection.
+ *       Revision 1.19  2002/01/08 19:06:40  byang
+ *       Renamed engRelaySCServiceControl() to
+ *       engRelayServOptionControlResp().
+ *       Revision 1.18  2002/01/08 17:03:32  ameya
+ *       CBP3.0 merge to 4.0 to support Silent Retry.
+ *       Revision 1.17  2002/01/02 10:12:38  AMALA
+ *       Added new system selection changes.
+ *       Revision 1.16  2001/12/14 17:09:25  mclee
+ *       prototype engRelayGetPSInfo()
+ *       Revision 1.15  2001/12/07 14:44:43  bcolford
+ *       Change RSSI to an unsigned 16 bit value.
+ *       Revision 1.14  2001/11/20 12:30:47  mclee
+ *       Add prototypes engRelayGetNam, engRelayWriteNam
+ *        engRelayMmiChangedNam Add ENG_IND_FORCE_BAND_MODE to status indication for wbios reports.
+ *       Revision 1.13  2001/11/08 12:41:56  AMALA
+ *       Added PRL processing support for SSPR functionality.
+ *       Revision 1.12  2001/10/29 09:35:27  mclee
+ *       Changed voiceActivity defined in typeInfo from kal_uint8 to kal_bool
+ *       Revision 1.11  2001/10/08 14:46:27  mclee
+ *       prototype engRelayGetPrlInfo()
+ *       Revision 1.10  2001/09/24 15:19:04  kmar
+ *       Update SMS to latest in CBP3.
+ *       Added #define RQ_AUTO_ANSWER.
+ *       Revision 1.9  2001/09/07 17:59:00  akayvan
+ *       Added declaration for engRelayOuterLoopReportReqParams() per
+ *       FPC.
+ *       Revision 1.8  2001/08/03 15:14:35  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.7  2001/07/18 15:09:05  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.6  2001/07/02 14:09:32  kmar
+ *       Update SCC and SMS to CBP3 v360.
+ *       Added fields related to Information Record support in
+ *       RDTCH Origination Continuation Message.
+ *       Revision 1.5  2001/06/12 15:39:39  byang
+ *       Added new fields to HOIdleParams structure.
+ *       Revision 1.4  2001/04/27 16:35:31  byang
+ *       Added functionality to set the MS capability database from ETS
+ *       and to stored the database into DBM when the MS is powerd-
+ *       down.  On power-up, the MS Cap. Db. is read from DBM.
+ *       Revision 1.3  2001/03/16 11:29:10  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.2  2001/01/29 18:20:52  dstecker
+ *       new access probe architecture
+ *       Revision 1.1  2001/01/17 10:58:25  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/11/13 14:25:46  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:12Z  fpeng
+ *       Initial revision
+ *       Revision 1.7  2000/09/08 23:58:27Z  RSATTARI
+ *       Added define for full system time (36bit) request type and added data filed for the
+ *       CP request structure.
+ *       Revision 1.6  2000/08/31 23:41:52Z  bcolford
+ *       Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *       Revision 1.5  2000/08/23 22:06:26Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.4  2000/07/11 20:57:00Z  bsharma
+ *       Added CDMA to AMPS Handoff Macro definitions.
+ *       Revision 1.3  2000/03/15 20:34:53Z  bcolford
+ *       Add a new indicator macro to handle the AMPS initialization
+ *       acknowledgement.
+ *       Revision 1.2  2000/03/01 18:06:12Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.53  2000/04/05 19:50:26  gfrye
+ *       Moved Request Mode defined values from acc_asmb.h.
+ *
+ *       Revision 1.52  2000/03/09 00:19:06  scotvold
+ *       Removed SYS_OPTION_AMPS compile guards for ENG_IND_TC_TO_AVC_HO_START.
+ *
+ *       Revision 1.51  2000/03/06 21:25:45  gfrye
+ *       Changed value of PCR_UPDATED so that it didn't conflict with the
+ *       value STATUS_UPDATED used b OTASP.
+ *
+ *       Revision 1.50  2000/03/02 01:57:16  scotvold
+ *       Added engRelay calls to extract CPE statistics.
+ *
+ *       Revision 1.49  2000/03/01 01:52:59  scotvold
+ *       CDMA -> AMPS handoff changes.
+ *
+ *       Revision 1.48  2000/02/25 23:24:30  gfrye
+ *       Added PCR_UPDATED flag for engRelayNamChanged to indicate that
+ *       a NAM parameter may have changed and a parameter change
+ *       registration may be required.
+ *
+ *       Revision 1.47  2000/02/22 20:42:56  gfrye
+ *       Added "AMPS" to name of all Analog SMS API functions.
+ *
+ *       Revision 1.46  2000/02/19 02:07:57  scotvold
+ *       Put in SYS_OPTION_AMPS guards.
+ *
+ *       Revision 1.45  2000/02/19 00:03:23  gfrye
+ *       Added new engRelay access functions to the API so that SMS can report
+ *       the status of recently received Alert With Info SMS and Extended
+ *        Protocol Info Services messages.
+ *       Added new callback message types and data fields for the new API functions.
+ *
+ *       Revision 1.44  2000/01/21 22:06:27  gfrye
+ *       Added new functions to facillitate A-Key update from OTASP.
+ *
+ *       Revision 1.43  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.42  1999/12/09 23:22:04  gfrye
+ *       Added new fields to OrigParms to support OTASP and E911 calls.
+ *       Added new prototype for when OTASP changes the NAM or PRL.
+ *       Added new prototype to record the pilot strength on the sync channel.
+ *
+ *       Revision 1.41  1999/08/27 19:45:26  gfrye
+ *       Added parameters to engRelayOutOfServiceAreaParameters to support the change
+ *       from 3 OOSA phases to 4.
+ *
+ *       Revision 1.40  1999/07/28 20:07:39  gfrye
+ *       Added prototype for new API function to set parameters for new Idle Handoff
+ *       algorithm.  Also added kal_bool immediateHo to handoff event structure to indicate
+ *       if requested handoff is an "immediate" handoff or a "delayed" handoff.
+ *
+ *       Revision 1.39  1999/07/07 21:22:38  scotvold
+ *       Separation of HT_MAX and T_MAX for idle handoff.
+ *
+ *       Revision 1.38  1999/06/16 00:36:07  scotvold
+ *       Added Unacknowledged Data Burst send confirmation.
+ *
+ *       Revision 1.37  1999/04/16 00:29:03  scotvold
+ *       Added support for already encoded digits.
+ *
+ *       Revision 1.36  1999/04/15 01:37:10  mhayduk
+ *       Added encoded indication to orig parms.
+ *
+ *       Revision 1.35  1999/04/13 19:15:27  scotvold
+ *       New Idle Handoff Algorithm.
+ *
+ *       Revision 1.34  1999/03/18 19:57:54  mhayduk
+ *       Added support for Searching Out of Service Area operation.
+ *
+ *       Revision 1.33  1999/03/04 00:31:24  mhayduk
+ *       Added test mode support for setting Idle HO parmeters.
+ *
+ *       Revision 1.32  1999/02/25 16:41:28  dfischer
+ *       Changed SYS_B to 0
+ *
+ *       Revision 1.31  1999/02/05 02:24:05  scotvold
+ *       Test Mode Statistic Reporting API changes.
+ *
+ *       Revision 1.30  1999/01/26 18:49:45  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.29  1999/01/20 00:24:33  mhayduk
+ *       Added numDigits to origParms.
+ *
+ *       Revision 1.28  1999/01/09 00:33:00  scotvold
+ *       Added AckInd qualification structure.
+ *
+ *       Revision 1.27  1999/01/05 00:28:54  mhayduk
+ *       Updated for new API release.
+ *
+ *       Revision 1.26  1998/12/02 16:25:27  mhayduk
+ *       Updated to remove non-T53 structures and calls.
+ *
+ *       Revision 1.25  1998/12/02 01:51:30  scotvold
+ *       Added T53 guards for #include.
+ *
+ *       Revision 1.24  1998/12/02 00:05:18  scotvold
+ *       Added engRelayReverseMultiplexParameters().
+ *
+ *       Revision 1.23  1998/11/27 20:38:12  mhayduk
+ *       Made SYS_A and SYS_B generally accessible.
+ *
+ *       Revision 1.22  1998/11/20 16:36:34  mhayduk
+ *       Removed TC pilot set maintenance drop interface and added
+ *       slotted mode test flag.
+ *
+ *       Revision 1.21  1998/10/31 02:19:17  scotvold
+ *       Pilot Set maintenance optimization test.
+ *
+ *       Revision 1.20  1998/10/23 14:43:12  mhayduk
+ *       Added typedefs for amps structs.
+ *
+ *       Revision 1.19  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.18  1998/10/07 23:04:08  mhayduk
+ *       Added event so access state is notified of received pilot
+ *       measurement report.
+ *
+ *       Revision 1.17  1998/10/07 22:53:50  tdaly
+ *       Added OP_MODE2 to ENG_OP_MODE see #if defined(SYS_OPTION_AMPS).
+ *
+ *       Revision 1.16  1998/09/22 18:44:57  tdaly
+ *       Added IS-95 analog mode support.
+ *
+ *       Revision 1.15  1998/09/11 16:23:17  scotvold
+ *       Added Handoff Complete Indication event.
+ *
+ *       Revision 1.14  1998/09/11 02:32:08  scotvold
+ *       Candidate Frequency API changes. Test Mode changes.
+ *
+ *       Revision 1.13  1998/08/14 23:47:01  scotvold
+ *       Added Data Burst support.
+ *
+ *       Revision 1.12  1998/08/13 00:12:31  scotvold
+ *       Added DTMF support.
+ *
+ *       Revision 1.11  1998/07/29 04:21:11  mhayduk
+ *       Added new indications for access handoff support.
+ *
+ *       Revision 1.10  1998/07/27 17:26:30  scotvold
+ *       Added TX Acknowledgement failure support.
+ *
+ *       Revision 1.9  1998/07/14 17:30:23  scotvold
+ *       Minor changes.
+ *
+ *       Revision 1.8  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.7  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.6  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.5  1998/05/13  18:11:50  mhayduk
+ * Added new error codes for bad NAM parameters.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _ENGINE_H_
+
+  #define _ENGINE_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pswapi.h"
+#include "Serv_cfg.h"
+#include "layer2.h"
+#include "pilots.h"
+#include "namdata.h"
+#include "sync_msg.h"
+#include "Msg_defn.h"
+#include "ho_tc.h"
+#include "stats.h"
+#include "Field.h"
+#include "cssapi.h"
+#include "Ms_Cap_Db.h"
+#include "Ds_Signaling.h"
+
+#include "ho_cf.h"
+#include "ho_ac.h"
+
+#include "resource_control.h"
+#include "loc_pars.h"
+#include "sbp_public_utility.h"
+#include "event_info_utility.h"
+
+#ifdef MTK_DEV_C2K_IRAT
+#include "c2k_rsvas.h"
+#include "valiratapi.h"
+#endif
+
+#include "md_sap.h"
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+  /* Request Mode codes - Table 6.7.1.3.2.4-1 */
+  #define CP_REQUEST_MODE_CDMA_ONLY            1
+  #define CP_REQUEST_MODE_WIDE                 2
+  #define CP_REQUEST_MODE_CDMA_WIDE            3
+  #define CP_REQUEST_MODE_NARROW_ONLY          4
+  #define CP_REQUEST_MODE_CDMA_NARROW_ONLY     5
+  #define CP_REQUEST_MODE_NARROW_WIDE          6
+  #define CP_REQUEST_MODE_NARROW_WIDE_CDMA     7
+
+  /* Engine system errors */
+  #define ENG_ERR_BAD_PREF_BAND      1     /* pref band mismatch with op_mode */
+  #define ENG_ERR_BAD_PREF_MODE      2     /* pref mode mismatch with op_mode */
+  #define ENG_ERR_BAD_CUSTOM_OPMODE  3     /* bad opmode setting in custom.h  */
+  #define ENG_ERR_INCOMPATIBLE_BAND_MODE 4 /* incompatible band/mode combo    */
+  #define ENG_ERR_TUNE_RADIO         5     /* Can't tune Radio                */
+  #define ENG_ERR_POWER_AMP          6     /* Can't control Power Amplifier   */
+  #define ENG_ERR_OOSA_BAD_VALUE     7     /* Bad param value for OOSA select */
+  #define ENG_ERR_IHO_BAD_VALUE      8     /* Bad parm for Idle HandOff       */
+
+  /* Call Processing Request types */
+  #define RQ_ENABLE             10     /* (+ NAM Parameter Data)           */
+  #define RQ_DISABLE            11     /* (no data)                        */
+  #define RQ_ORIGINATE          12     /* (+ digits + service option)      */
+  #define RQ_ANSWER             13     /* (no data)                        */
+  #define RQ_FLASH              14     /* (+ digits)                       */
+  #define RQ_TERMINATE          15     /* (no data)                        */
+  #define RQ_POWERDOWN          16     /* (no data)                        */
+  #define RQ_BURST_DTMF         17     /* (+ digits)                       */
+  #define RQ_CONT_DTMF_ON       18     /* (+ digit)                        */
+  #define RQ_CONT_DTMF_OFF      19     /* (no data)                        */
+  #define RQ_VP_ON              20     /* (no data)                        */
+  #define RQ_VP_OFF             21     /* (no data)                        */
+  #define RQ_DATA_BURST         22     /* (+ data burst data)              */
+  #define RQ_DATA_BURST_UNACK   23     /* (+ data burst data)              */
+  #define RQ_DATA_BURST_REJ     24     /* (no data)                        */
+  #define RQ_WIDE_ANALOG        25     /* (no data)                        */
+
+  #define RQ_AUTO_ANSWER        27     /* (no data)                        */
+  #define RQ_PAGE_RESPONSE      28     /* (no data)                        */
+  #define RQ_TERM_SVC_INACT     29     /* (no data)                        */
+  #define RQ_AFLT_SEARCH        30     /* (+ aflt info)                    */
+  #define RQ_LBS_1X_ACQ         31
+  #define RQ_NST_POWERUP        32
+  #define RQ_NST_EXIT           33
+  #define RQ_FULL_SYSTIME_GET   34
+  #define RQ_NST_FER_CFG        35
+  #define RQ_NST_RX_MEAS_CFG    36
+  #define RQ_NST_TX_MEAS_CFG    37
+
+  /* Status indication for different WBIOS Reports */
+  #define ENG_IND_ANTENNA_REQ_GRANTED    57
+  #define ENG_IND_ANTENNA_REQ_DENIED     58
+  #define ENG_IND_ANTENNA_RELEASED       59
+  #define ENG_IND_PILOT_ACQUIRE          60
+  #define ENG_IND_NO_PILOT               61
+  #define ENG_IND_SYNC_ACQUIRE_FAIL      62
+  #define ENG_IND_SYNC_TO_SYS_TIME       63
+  #define ENG_IND_SYNC_TO_SYS_TIME_FAIL  64
+  #define ENG_IND_PAGE_MONITOR           65
+  #define ENG_IND_PAGE_MONITOR_FAIL      66
+  #define ENG_IND_SEND_ACCESS_MSG_FAIL   67
+  #define ENG_IND_SEND_TC_MSG            68
+  #define ENG_IND_SEND_TC_MSG_FAIL       69
+  #define ENG_IND_TC_CONFIG              70
+  #define ENG_IND_LONG_CODE_CHANGED      71
+  #define ENG_IND_RADIO_TUNED            72
+  #define ENG_IND_RADIO_NOT_TUNED        73
+  #define ENG_IND_PILOT_LOST             74
+  #define ENG_IND_PUF_PROBE_SENT         75
+  #define ENG_IND_PUF_PROBE_SENT_MAX_PWR 76
+  #define ENG_IND_PUF_PROBE_NOT_SENT     77
+  #define ENG_IND_WAKEUP                 78
+  #define ENG_IND_PILOT_SET              79
+  #define ENG_IND_IHO_COMPLETE           80
+  #define ENG_IND_OOSA_WAKEUP            81
+  #define ENG_IND_TC_TO_AVC_HO_START     82
+  #define ENG_IND_BCCH_MONITOR           83
+  #define ENG_IND_BCCH_MONITOR_FAIL      84
+  #define ENG_IND_FCCCH_MONITOR          85
+  #define ENG_IND_FCCCH_MONITOR_FAIL     86
+  #define ENG_IND_HO_FAIL                87
+  #define ENG_IND_FORCE_BAND_MODE        88
+  #define ENG_SYS_RESCAN_TIME            89
+  #define ENG_IND_DISABLE_E911MODE       90
+  #define ENG_IND_RSCH_STARTED           91
+
+  #define ENG_IND_SYNC_CSS_FAIL          92
+  #define ENG_IND_SYNC_CSS_PASS          93
+  #define ENG_IND_FSCH_STARTED           94
+  #define ENG_IND_FSCH_TERMINATED        95
+  #define ENG_SYS_REDIRECTION_END_TIME   96
+  #define ENG_IND_FORCE_ANALOG_MODE      97
+  #define ENG_IND_IDLE_HANDOFF_ACQUIRE   99  /* and from CPB6.0  Hans Christiansen 080404 */
+
+/* Engine event notification request types for use in CALLBACK */
+  #define ENG_NULL_EVENT        100      /* event complete indicator        */
+  #define ENG_IND_TIMEOUT       101      /* CP timer expiry indicator       */
+  #define ENG_SYNC_MESSAGE      102      /* SYNC message received ind.      */
+  #define ENG_PAGE_MESSAGE      103      /* PCH message received ind.       */
+  #define ENG_FTC_MESSAGE       104      /* FTC message received ind.       */
+  #define ENG_FCSCH_LOST        105      /* forword common control Ch lost ind. */
+  #define ENG_IDLE_HANDOFF      106      /* Idle handoff request ind.       */
+  #define ENG_REGISTRATION_REQ  107      /* Registration access request     */
+  #define ENG_ACCESS_FAIL       108      /* Access attempt failed           */
+  #define ENG_FTC_N5M_FRAMES    109      /* Rcvd N5m consecutive good frames */
+  #define ENG_ACCESS_PSIST_FAIL 110      /* PSIST calculation = 0           */
+  #define ENG_FTC_LOST          111      /* FTC fade timer timed out        */
+  #define ENG_IND_ACK_RECEIVED  112      /* Ack rcvd for a transmitted msg  */
+  #define ENG_STRONGEST_PILOT_REPORT 113 /* Strongest pilot report          */
+  #define ENG_ACCESS_HO_CANDIDATE    114 /* Access Entry HO candidate found */
+  #define ENG_ACCESS_HO_NO_CANDIDATE 115 /* no Access Entry HO candidate    */
+  #define ENG_ACCESS_HO_LIST         116 /* access ho list pilot report     */
+  #define ENG_ACCESS_PROBE_HO_FAIL   117 /* access probe ho fail ind.       */
+  #define ENG_ACCESS_HO_DENIED       118 /* access ho attempt not allowed   */
+  #define ENG_READ_ACCESS_OVERHEAD   119 /* selected overhead read after ho */
+  #define ENG_ACCESS_PROBE_FAIL      120 /* access probe too big            */
+  #define ENG_IND_TC_ACK_FAILURE     121 /* TC transmission ACK failure     */
+  #define ENG_IND_ACCESS_PILOT_MSMT  122 /* pilot msmt report in access     */
+  #define ENG_START_SYS_RESELECT     123 /* Start Sys Reselect Procedures   */
+
+  #define ENG_ACCESS_MODE_SEARCH_FAIL 125 /* access mode determination fail */
+  #define ENG_BCCH_MESSAGE           126 /* FCCCH message received ind.     */
+  #define ENG_FCCCH_MESSAGE          127 /* BCCH message received ind.      */
+  #define ENG_ACCESS_HANDOFF         128 /* Access handoff request ind.     */
+
+  #define ENG_IND_QPCH_PI_STATUS     129 /* PI Status                       */
+  #define ENG_IND_SOFT_HO_COMPLETE   130
+  #define ENG_IND_HARD_HO_COMPLETE   131
+  #define ENG_IND_E911_ACCESS_FAIL   133 /* E911 Access Fail                */
+  #define ENG_IND_AFLT_RESULT_RCVD   134 /* AFLT Srch Rslt Rcvd from L1d    */
+  #define ENG_IND_OOSA_REQ           135
+  #define ENG_IND_MODEM_FAILURE      136
+  #define ENG_IND_MODEM_READY        137
+  #define ENG_IND_CLK_CAL_START      138
+  #define ENG_IND_CLK_CAL_DONE       139
+
+  #define ENG_IND_CSS_OTASP_ACQ_REQ     150
+  #define ENG_IND_CSS_SELECT_RSP        151
+  #define ENG_IND_CSS_VALIDATE_RSP      152
+  #define ENG_IND_CSS_SYS_ACQ_REQ       153
+
+  #define ENG_IND_FREEZE                154
+  #define ENG_IND_THAW                  155
+  #define ENG_IND_RESYNC                156
+  #define ENG_IND_RESYNC_DENIED         157
+
+#ifdef MTK_DEV_C2K_IRAT
+  #define ENG_IND_RSVAS_VIRTUAL_SUSPEND 160 /* inform to stop inter-freq meas if any*/
+  #define ENG_IND_RSVAS_RESUME          161 /* inform to start inter-freq meas if any */
+  #define ENG_IND_RSVAS_OCCUPY_IND      162 /* inform to start access procedure */
+  #define ENG_IND_EXIT_PS_REQ           163 /* inform to exit 1x PS during C2L MPSR procedure */
+  #define ENG_IND_L1D_RAKE_DDL_CNF      164 /* inform thant L1D rake ddl has complete */
+  #define ENG_IND_CSS_FORCE_POWER_DOWN  165 /* inform to do power down flow */
+  #define ENG_IND_LOCAL_RELEASE         166 /* inform PE to do local release */
+#endif
+
+  #define ENG_IND_AMPS_VOICEACT         200
+  #define ENG_IND_AMPS_FSULOCK          202
+  #define ENG_IND_AMPS_RSSIVAL          203
+  #define ENG_IND_AMPS_FOCC             204
+  #define ENG_IND_AMPS_FVC              205
+  #define ENG_IND_AMPS_SCC              206
+  #define ENG_IND_AMPS_TXSTATUS         207
+  #define ENG_IND_AMPS_CARRIERSTATUS    208
+  #define ENG_IND_AMPS_CHANFORMAT       209
+  #define ENG_IND_AMPS_POWERLEVEL       210
+  #define ENG_IND_AMPS_WBIOS_INIT_COMPLETE 211 /* Wbios initialization completed  */
+  #define ENG_IND_AMPS_HO_COMPLETE      212
+  #define ENG_IND_EPRL_ESPM_TIMEOUT     213
+  #define ENG_IND_MANUAL_AVOID_SYS      214
+  #define ENG_IND_L1D_DEACTIVE_CNF      215
+  #define ENG_IND_L1D_INIT_CNF          216
+  #define ENG_IND_L1D_OOSA_CNF          217
+  #define ENG_IND_LOCK_ORDER            218
+  #define ENG_IND_UNLOCK_ORDER          219
+  #define STARTUP_OOSA_TRAP_DURATION    1200 /* 120 seconds */
+
+  /* The following defines are used internally by the engine. */
+  /*==========================================================*/
+
+  /* Set Engine supported operating mode by OR'ing supported modes */
+
+  /* Support for PCS and Cellular CDMA   */
+  #define ENG_OP_MODE       ( OP_MODE0 + OP_MODE1 )
+
+  #define ENG_AMPS_START_SCAN        200 /* Start AMPS channel scanner      */
+  #define ENG_AMPS_SCAN_COMPLETE     201 /* Channel scan complete           */
+  #define ENG_AMPS_OMT               203 /* OMT received                    */
+  #define ENG_AMPS_FILLER            204 /* Control Filler received         */
+  #define ENG_AMPS_MSCM              205 /* MSCM received                   */
+  #define ENG_AMPS_SMS_CNF           206 /* MSCM received                   */
+  #define ENG_AMPS_AWI_SMS_CNF       207 /* MSCM received                   */
+  #define ENG_NO_IDLE_HANDOFF        210 /* No Idle handoff request ind     */
+  #define ENG_UIM_AUTHR              230 /*UIM AUTH Result*/
+  #define ENG_UIM_RANDBS             240
+  #define ENG_UIM_SSD_CONFIRM        241
+#ifdef MTK_CBP_SYNC_OPTIMIZE
+  #define ENG_IND_SIB8_TIMING_CNF    250
+  #define ENG_IND_NO_SIB8_TIMING     251
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+
+  /* Define protocol revisions */
+  #define CP_P_REV_IS95B        4        /* IS-95B revision level           */
+
+/*
+ *      Updated Data Mask Bits Defined
+ */
+
+#ifndef NAM_UPDATED
+#define NAM_UPDATED             0x01
+#define IMSI_UPDATED            0x02
+#define MDN_UPDATED             0x04
+#define AUTH_UPDATED            0x08
+#define SSPR_UPDATED            0x10
+#endif
+
+#define STATUS_UPDATED          0x20 /* used by OTASP */
+
+
+/*****************************************************************************
+ * Engine structure definition
+ ****************************************************************************/
+
+  /* Reconnect Message Service Configuration synchronization identifier   */
+  #define CP_MAX_SYNC_ID        4
+
+  /* CDMA Structure Definitions                               */
+  /*==========================================================*/
+
+  /* structure to contain origination parameters */
+  typedef struct
+  {
+    PswCallModeT callMode;      /* voice call type              */
+    kal_uint8  requestMode;         /* requested call type          */
+    kal_bool   specialService;      /* special service option requested */
+    kal_uint16 serviceOption;       /* requested service option     */
+    kal_bool   encoded;             /* digits encoded indication    */
+    kal_bool   digitMode;           /* digit encoding indicator     */
+    kal_uint8  numberType;          /* type of number               */
+    kal_uint8  numberPlan;          /* numbering plan               */
+    char   *digits;             /* ascii digits, null terminated string */
+    kal_uint8  numDigits;           /* number of digits to be dialled       */
+
+    kal_bool  sendCallingPartyNumber;
+    CallingPartyNumber  callingPartyNumber;
+    kal_uint8 OtaspMode;
+
+    kal_bool   MultipleCallingPartyNum;
+    kal_bool   SendCallingPartySubaddr;
+    Subaddress CallingPartySubaddr;
+    kal_bool   SendCalledPartySubaddr;
+    Subaddress CalledPartySubaddr;
+  } OrigParms;
+
+
+  /* Call Processing Request structure */
+  typedef struct
+  {
+    kal_uint8        type;                /* Call Processing request type */
+    union
+    {
+      PswIs95NamT       *nam;              /* Enable Request: NAM Data   */
+      OrigParms         *origParms;        /* Originate Parameters       */
+      RTCContDTMFData   *contDTMFParms;    /* Continuous DTMF Parms      */
+      RTCBurstDTMFData  *burstDTMFParms;   /* Burst DTMF Parameters      */
+      RTCFlashData      *flashParms;       /* Flash Parameters           */
+      DataBurstData     *dataBurstParms;   /* Data Burst Parameters      */
+      /* R.Sattari, 9/7/00, added */
+      SessionType       *afltParms;        /* AFLT Request, LocSrv Data  */
+    } requestInfo;
+  } CPRequest;
+
+  typedef CPRequest CP_REQUEST;      /* for compatibility with IS-136 */
+
+  typedef struct
+  {
+    CHANNEL_DESC             selectRspData;
+    PswCssValidationRsltT  ValidateRspData;
+  }CssParameters;
+
+  /* structure to contain idle handoff parameters */
+  typedef struct
+  {
+    HOPilotInfo    pilotInfo;
+    kal_uint8           nghbrConfigType; /* NLM, ENLM, GNLM, or UNLM */
+    kal_uint8           nghbrConfig;     /* 000, 001, 010, or 011 */
+    kal_bool           immediateHo;
+    kal_bool           bcchSupported;
+  } IdleHOParms;
+
+  /* Message Transmitter notification structure */
+  typedef struct
+  {
+    RTCMessageType    msgType;
+    ReverseOrderCode  order;
+  } MTXNotify;
+   /* UIM Auth Result  notification structure */
+  typedef struct
+  {
+    kal_uint16    Sw;
+    kal_uint32  result;
+    kal_uint16 caveMsgId;
+  } AuthResult;
+
+  /* Engine initialization data */
+  typedef struct
+  {
+    kal_bool   rateSet1Supported;        /* Indicates if rate set 1 is used */
+    kal_uint8   rateSet1ForRates;         /* Rate set 1 supported forward rates */
+    kal_uint8   rateSet1RevRates;         /* Rate set 1 supported reverse rates */
+    kal_bool   rateSet2Supported;        /* Indicates if rate set 2 is used */
+    kal_uint8   rateSet2ForRates;         /* Rate set 2 supported forward rates */
+    kal_uint8   rateSet2RevRates;         /* Rate set 2 supported reverse rates */
+    kal_uint8   *muxOptions;              /* null term. list of supported options */
+    kal_uint16   *serviceOptions;          /* null term. list of supported services */
+  } EngInit;
+
+  /* Engine Callback Notification Message structure.          */
+  /* This structure is used internally by the engine.         */
+  /*==========================================================*/
+  typedef struct
+  {
+    kal_uint8 type;                             /* Notification type             */
+    union
+    {
+      kal_uint8             timer;             /* Expired Timer Number           */
+      PswIs95NamT       *nam;              /* Current NAM parameters         */
+      void              *messageP;         /* pointer to any message type    */
+      kal_uint8              regType;           /* registration type              */
+      OrigParms         *origParms;        /* Originate Parameters           */
+      RTCFlashData      *flashParms;       /* Flash Parameters               */
+      IdleHOParms       *idleHOParms;      /* pilot info for Idle HO         */
+      RTCContDTMFData   *contDTMFParms;    /* Continuous DTMF Parms          */
+      RTCBurstDTMFData  *burstDTMFParms;   /* Burst DTMF Parameters          */
+      DataBurstData     *dataBurstParms;   /* Data Burst Parameters          */
+      MTXNotify         notify;            /* MTX Notification               */
+      AuthResult        authr;
+      HOAccessHOList    *accessHoList;     /* access ho list msmt report     */
+      CssParameters     CssParms;
+      kal_bool              piStatus;          /* Status of Pi Signal            */
+      SessionType       *afltParms;        /* AFLT Request, LocSrv Data      */
+    } typeInfo;
+  } Callback;
+
+  typedef Callback CALLBACK;          /* for compatibility with IS-136  */
+
+
+  typedef enum
+  {
+    TM_CAND_FREQ_SEARCH_REQUEST, /* Candidate Frequency Search Request */
+    TM_CAND_FREQ_SEARCH_CONTROL  /* Candidate Frequency Search Control */
+  } TMInjectMsgType;
+
+
+  typedef struct
+  {
+    TMInjectMsgType  msgType;           /* Injected message type      */
+    union
+    {
+      CFSRQMData* cfsrqmData;
+      CFSCNMData* cfscnmData;
+    } type;
+  } TMInjectMsg;
+
+
+  typedef struct
+  {
+    kal_uint8   schId;
+    kal_uint16  schBadFrames;
+    kal_uint16  schTotFrames;
+
+  } CPSchPmrmParms;
+
+  typedef struct
+  {
+    kal_bool            fchMeasIncl;
+    kal_uint8           fchBadFrames;
+    kal_uint16          fchTotFrames;
+    kal_bool            dcchMeasIncl;
+    kal_uint8           dcchBadFrames;
+    kal_uint16          dcchTotFrames;
+    kal_uint8           numForSch;
+    CPSchPmrmParms  schPmrmParms[ CP_MAX_FOR_SCH ];
+  } CPPmrmParms;
+
+  /* Data structure for Silent Retry info */
+  typedef struct
+  {
+    kal_bool            enabled;
+    kal_uint8           numAttempts;
+    kal_uint32          interval;
+    kal_uint32          timeToAbort;
+  } SilentRetryInfo;
+
+  typedef struct
+  {
+    kal_bool   origInd;
+    kal_bool   syncIdIncl;
+    kal_uint8  syncIdLen;
+    kal_uint8  syncId[ CP_MAX_SYNC_ID ];
+    kal_uint16 serviceOption;
+    kal_uint8  srId;
+  } ReconnectParms;
+
+#ifdef MTK_DEV_C2K_IRAT
+  typedef enum
+  {
+    CSFB_STATE_NULL, /* No CSFB action */
+    CSFB_STATE_MT_INIT, /* There is a pending CSFB request to send in MT */
+    CSFB_STATE_MO_INIT, /* There is a pending CSFB request to send in MO */
+    CSFB_STATE_WAIT, /* Wait CSFB confirm */
+    CSFB_STATE_IDLE, /* In the call procedure, need send CSFB stop when call finish */
+  } CsfbState;
+#endif
+#ifdef MTK_CBP_REL_OPTIMIZE
+  typedef struct
+  {
+    kal_bool  isOrigPended;
+    OrigParms OriginalParms;
+  }PendingOrigParms;
+#endif
+/*****************************************************************************
+ * Engine Callback function prototypes
+ ****************************************************************************/
+
+
+  /* CDMA Callback function protypes                          */
+  /*==========================================================*/
+  void engInitialize(void);
+  void engRelayCPRequest(CPRequest *request);
+  void engRelaySCServiceConfigurationRequest (ServiceConfiguration* servCfg);
+  void engRelaySCServiceOptionRequest (kal_uint16 serviceOption);
+  void engRelayPageFrameIndication(PageFrame *frame);
+
+  void engRelayPilotMeasureReport (kal_int16 pilotSeq, kal_uint16 referencePN,
+                                   PilotReport *report);
+  void engRelayL1dAccessPreambleComplete(WbiosSystime sendtime);
+  void engRelayL1dAccessProbeComplete(WbiosSystime finishTime);
+
+  void engRelayReportStatus(kal_uint8 status);
+  void engRelaySyncFrameIndication(SyncFrame *frame);
+  void engRelayIdleHandoff(kal_uint16 pilotPN);
+  void engRelayTCFrameIndication (TCFrame *frame);
+  void engTimerExpired(kal_int16 timerId);
+
+  void engRelayMultiplexParameters (MuxParmsT* MuxParms);
+  void engRelayTestMode(TestModeMsgT mode, kal_uint16 qualifier, kal_uint16 value);
+  void engRelayTMInjectMsg (TMInjectMsg* tmInjectMsg);
+  /* Emergency Mode Processing */
+  void engRelayE911Mode(kal_bool E911Mode);
+  void engRelayMsCapDb( const MsCapDb* pMsCapDb );
+  void engRelayHspdActiveControlHold
+  (
+    const Ds_HspdActiveControlHoldType newHspdState
+  );
+
+  void engRelayRschRelInd( const kal_uint16 remainDuration );
+
+/* Hans-082802 verify who is using this ?
+  void engRelayDataBufferStatus
+  (
+    const kal_uint8     srId,
+    const kal_uint16    dataSize
+  );
+ */
+
+  void engRelayRevSchRequest
+  (
+    const kal_uint8           srId,
+    const SchRateIndex    prefRate,
+    const kal_uint16          duration
+  );
+
+  void cpRunTheEngine(Callback *engRequest);
+  kal_bool cpEngIsOrigQueued(void);
+  void engRelayPMRMParams ( const CPPmrmParms* pPmrm );
+  void engRelayOuterLoopReportReqParams (OuterLoopRepData *outerLoopRepData);
+  void cpSetWakeData(PswCmdStatusMsgT *wakeStatusMsgPtr);
+  void engRelayCDMACandFreqSearchReport(CFSearchReport *srchReport);
+  void engRelayCDMACandFreqSearchTimes(CFSearchTimes *srchTimes);
+  void engRelayCandFreqStart (void);
+  void engRelayCandFreqStop (kal_uint8 numFrames);
+
+  void engRelayNghbrPilotAboveTAdd (HOTCPilot* pilot);
+  void engRelayRemainingPilotAboveTAdd (HOTCPilot* pilot);
+
+  void engRelaySetAccessHoParams(
+    const kal_uint8     noiseFloor,
+    const kal_uint8     thrMin,
+    const kal_uint8     minAct,
+    const kal_uint8     thrSlope );
+
+  void engRelaySetIdleHoParameters
+  (
+    const kal_uint8     ThrMinImmed,
+    const kal_uint8     MinActImmed,
+    const kal_uint8     ThrSlopeImmed,
+    const kal_uint8     ThrMinDelayed,
+    const kal_uint8     MinActDelayed,
+    const kal_uint8     ThrSlopeDelayed,
+    const kal_uint8     DelayCount,
+    const kal_uint8     MinNghbrThr
+  );
+
+  void engRelayServOptionControlResp ( kal_uint8 conRef, kal_uint16 serviceOption,
+                                       kal_uint8 length, kal_uint8* ctlRec);
+
+  kal_uint32* engRelayGetL2RTCStats (void);
+  void engRelayGetPrlInfo(NamNumber namNumber);
+  void engRelayGetNam(void);
+  void engRelayWriteNam(NamNumber namNumber);
+  kal_bool tmContinuousBCCH(void);
+
+/*****************************************************************************
+ * Misc. function prototypes
+ ****************************************************************************/
+  void setIMSI(PswIs95NamT* Nam);
+
+  /* AMPS Callback function protypes                          */
+  /*==========================================================*/
+
+  void engRelaySetTempAkey(kal_uint8 *akey);
+  void engRelayDiscardTempAkey(void);
+  void engRelayCommitAkey(void);
+  void engRelayNamChanged(kal_uint8 whatsChanged);
+  void engRelaySyncCssDone(kal_bool indication);
+  void engRelayGetRetrievableStatistics(GetRetrievableParameterMsgT *msgDataPtr);
+  void engRelaySetRetrievableStatistics(SetRetrievableParameterMsgT *MsgDataPtr);
+  void engRelayMmiChangedNam(kal_uint32 whatChangedInNam, NamNumber namNumber);
+  void engRelayForceAnalogMode(void);
+  void engRelayGetPSInfo(void);
+
+  void engRelaySRSetSilentRetryMsg(kal_bool enable, kal_uint8 num, kal_uint32 interval, kal_uint32 abort);
+  SilentRetryInfo* engRelayGetSRInfo(void);
+  void engRelaySRGetSilentRetryStatusMsg(PswGetSilentRetryStatusMsgT *MsgP);
+  void engRelaySRSetAccessIsOrig(kal_bool orig);
+  void engRelaySRIncSilentRetryAttempt(void);
+
+  void engRelayDataBufferStatus(RcDataBufferStatusMsgT *msgPtr);
+  void engRelayDbTxInd(kal_uint8 retry);
+
+  void engRelayInitialAcqPwr(PswInitialAcqReportMsgT *MsgP);
+
+  void engRelayAlternatePilots(PswL1dAlternatePilotsMsgT* msgPtr);
+  void engRelaySysSettingsChanged(void);
+  void engRelaySysManualAvoid(void);
+
+  void engRelaySetLostScanPingFreq( kal_uint8 Geo_Scan_Ping_Frequency,
+                                    kal_uint8 Non_Geo_Scan_Ping_Frequency );
+  kal_bool PswIsVoiceServiceAllowed( void );
+  void PswInitIsVoiceSupported( void );
+  void engRelaySetSystemSelect( kal_bool val );
+  kal_bool engRelayGetSystemSelect( void );
+  void engRelaySysManualAvoid(void);
+
+#ifdef MTK_DEV_C2K_IRAT
+  void cpSetCsfbState(CsfbState state);
+  CsfbState cpGetCsfbState(void);
+  kal_bool cpIsCSFBNeeded(void);
+  void cpSetPsProtectReqFlag(kal_bool hasSent);
+  kal_bool cpGetPsProtectReqFlag(void);
+  void cpSetEsrProtectMsgFlag(kal_bool hasSent);
+  kal_bool cpGetEsrProtectMsgFlag(void);
+  void cpSetTxIsOngoing(kal_bool TxIsOngoing);
+  kal_bool cpGetTxIsOngoing(void);
+  void cpSetPsReleaseIsPended(kal_bool CssRsvasPsRelease);
+  kal_bool cpGetPsReleaseIsPended(void);
+#endif
+#ifdef MTK_CBP_REL_OPTIMIZE
+  void cpSetPendingOrigParms(kal_bool pending, OrigParms *originalParms);
+  PendingOrigParms* cpGetPendingOrigParms(void);
+#endif
+
+#endif  /* _ENGINE_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ho_ac.h b/mcu/interface/protocol/as_c2k/1xrtt/ho_ac.h
new file mode 100644
index 0000000..8fe8983
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ho_ac.h
@@ -0,0 +1,201 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   ho_ac.h
+ *
+ * Purpose:    Definition of Access Handoff support.
+ *
+ ****************************************************************************
+ *
+ *  VCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: ho_ac.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 04 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       ::KAL type - L3, folder ps
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.2  2004/03/25 12:09:30  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:44  fpeng
+ *       Initial revision
+ *       Revision 1.6  2003/03/07 11:41:17  byang
+ *       CR #1809: Add function prototype declaration for
+ *       hoACSetFirstIsActive().
+ *       
+ *       CR#1810: Add function prototype declaration for 
+ *       hoACSetAccessHoParms().
+ *       Revision 1.5  2002/11/20 15:48:45  byang
+ *       CR#1478: Modified hoAccessHandoffRecordUpdate() function
+ *       prototype.
+ *       Revision 1.4  2002/07/15 13:12:40  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.3  2002/06/06 13:12:29  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/07/18 15:09:49  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.1  2001/01/17 10:58:39  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:14  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:08:06Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.7  2000/03/01 01:40:45  scotvold
+ *       CC Overhead Backward Compatibility.
+ *
+ *       Revision 1.6  1999/06/23 22:50:39  gfrye
+ *        separated out functions for Access Entry Handoff so they can be shared with T53.
+ *
+ *       Revision 1.5  1999/06/20 04:25:14  scotvold
+ *       Removed redundant declarations.
+ *
+ *       Revision 1.4  1999/05/17 22:41:46  mhayduk
+ *       Removed insufficient PCH check from Access ho checks.
+ *
+ *       Revision 1.3  1998/12/01 04:45:00  mhayduk
+ *       Lint changes.
+ *
+ *       Revision 1.2  1998/10/22 15:18:13  mhayduk
+ *       Added prototype for hoUpdatePilotMeasurements.
+ *
+ *       Revision 1.1  1998/10/20 23:58:23  mhayduk
+ *       Initial revision
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _HO_AC_H_
+
+  #define _HO_AC_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "ho_cc.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Configuration structure definitions
+ ****************************************************************************/
+
+  typedef struct
+  {
+    HOPilotInfo pilot;
+    PilotMeasurement measure;
+    kal_bool   accessHoEnabled;
+    kal_bool   accessAttempted;
+    kal_bool   active;
+    kal_uint8  index;
+  } HOAccessHOEntry;
+
+  /* This structure is the combined ACCESS_HO_LIST and OTHER_LIST. */
+  typedef struct
+  {
+    kal_uint8 activeStrength;
+    kal_uint8 numPilots;
+    kal_uint8  numOthers;
+    kal_bool firstIsActive;
+    kal_bool firstIsPTA;
+    HOAccessHOEntry list[N13m];
+  } HOAccessHOList;
+
+  /* the following structure is used for sorting pilots by strength - */
+  /* the list is sorted externally in a separate array of this element */
+  typedef struct
+  {
+    kal_uint16 strength;
+    kal_uint8  index;
+  } HOStrengthIndex;
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+
+  void hoACSetNghbrSetAccessInfo (kal_bool state);
+  kal_bool hoACGetNghbrSetAccessInfo (void);
+  void hoClearSavedAccessHoEntries (void);
+  void hoAccessHandoffRecordUpdate( HONeighborRecord *nghbr, kal_uint8 pilot );
+  void hoSaveUpdateIdleRec (kal_uint8 nghbrSetSize,kal_bool* accessInfo,kal_uint8 type);
+  void hoUpdateIdleRec (kal_uint8 nghbrSetSize,kal_bool* accessInfo,kal_uint8 type);
+  void hoAccessHoAttempt (void);
+  void hoBuildAccessHoList (void);
+  void hoUpdatePilotReportingMeasurements (void);
+  void hoRequestPilotMeasurements (void);
+
+  void hoACSetFirstIsActive ( const kal_bool firstIsActive );
+  void hoACClearPilotAttemptedList (void);
+  kal_bool accessHoOptimizeEnabled(void);
+#ifdef MTK_DEV_BUG_FIX_XL2
+  kal_uint16 hoACGetFirstActivePN (void);
+#endif
+  void hoACSetAccessHoParms(
+    const kal_uint8     noiseFloor,
+    const kal_uint8     thrMin,
+    const kal_uint8     minAct,
+    const kal_uint8     thrSlope );
+
+  kal_bool hoExistsAccessHoList(void);
+  void hoClearAccessHoList(void);
+  kal_uint16 hoGetBestAccessHoPnStrength(void);
+
+#endif  /*_HO_AC_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ho_cc.h b/mcu/interface/protocol/as_c2k/1xrtt/ho_cc.h
new file mode 100644
index 0000000..b91a5f4
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ho_cc.h
@@ -0,0 +1,277 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   ho_cc.h
+ *
+ * Purpose:    Definition of Handoff set configuration and maintenance
+ *             structures and interfaces for Control Channel support.
+ *
+ ****************************************************************************
+ *
+ *  VCS Header Information
+ *
+ *
+ *       $Log: ho_cc.h $
+ *
+ *       08 21 2017 danny.dai
+ *       [MOLY00271967] Merge CL from MP5/MP R1 to Trunk/MP R2.
+ *       	
+ *       	Trunk: merge from R1 MP
+ *       	1. PCH restore strategy optimation for flight mode
+ *       	2. handle SMS paging/DBM in ECBM for Sprint
+ *       	3. Broadcast schedule
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.3  2004/04/06 14:02:08  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:30  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:18:09  bcolford
+ *       Update for merge.
+ *       Revision 1.7  2003/06/26 13:55:33  byang
+ *       CR#2394: Modified hoCCSetNewIHOparameters() prototype declaration
+ *       to include MinNgbhrThr.
+ *       Revision 1.6  2002/11/11 15:29:36  byang
+ *       Promote function sendIdlePilotSet() from static to public.
+ *       Revision 1.5  2002/07/15 13:13:01  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.4  2002/06/06 13:12:37  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2001/07/18 15:10:41  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.2  2001/06/12 15:41:03  byang
+ *       Update idle handoff to IS2000 Rev. 0 specifications.
+ *       Revision 1.1  2001/01/17 10:58:42  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/22 11:37:47  byang
+ *       Fixed incorrect data type for "auxPilotWalsh[]".  Changed from
+ *       kal_uint16 to kal_uint8.
+ *       Revision 1.3  2000/12/05 17:45:04  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:25:50  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:14Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:08:10Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:06:42Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.15  1999/08/05 17:48:49  gfrye
+ *       Added prototype for hoResetIdleHandoff, new functionto cancel any delayed
+ *       idle handoff that might be pending.
+ *
+ *       Revision 1.14  1999/07/28 20:25:43  gfrye
+ *       Added new prototype hoCCSetNewIHOparameters to set new values for the
+ *       Idle Handoff algorithmn parameters.
+ *
+ *       Revision 1.13  1999/07/07 21:22:38  scotvold
+ *       Separation of HT_MAX and T_MAX for idle handoff.
+ *
+ *       Revision 1.12  1999/07/07 16:33:12  gfrye
+ *       added hoSlottedModePilotUpdate to request a pilot measurement from eng_idle.c
+ *
+ *       Revision 1.11  1999/04/13 19:15:27  scotvold
+ *       New Idle Handoff Algorithm.
+ *
+ *       Revision 1.10  1999/04/08 23:47:56  mhayduk
+ *       Added prototype for hoCCInitialize().
+ *
+ *       Revision 1.9  1999/03/04 00:32:09  mhayduk
+ *       Added prototypes for Idle HO test mode support.
+ *       Added prototype for enabling/disabling slotted mode indicator.
+ *
+ *       Revision 1.8  1998/11/17 21:55:49  mhayduk
+ *       Initialize idle handoff flag to enabled.
+ *
+ *       Revision 1.7  1998/10/22 15:18:13  mhayduk
+ *       Added prototype for clearing strong pilot monitoring report.
+ *
+ *       Revision 1.6  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.5  1998/10/09 00:19:12  mhayduk
+ *       Added prototype for access pilot management.
+ *
+ *       Revision 1.4  1998/09/11 16:23:50  scotvold
+ *       Minor change.
+ *
+ *       Revision 1.3  1998/09/11 02:33:06  scotvold
+ *       Added test mode to disable Idle Handoffs.
+ *
+ *       Revision 1.2  1998/07/29 04:20:04  mhayduk
+ *       Added access handover support.
+ *
+ *       Revision 1.1  1998/06/08 21:48:25  scotvold
+ *       Initial revision
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _HO_CC_H_
+
+  #define _HO_CC_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+  #include "ho_set.h"
+
+/*****************************************************************************
+ * Configuration structure definitions
+ ****************************************************************************/
+
+
+  /********************************************************************/
+  /* IDLE_HANDOFF_REC[]                                               */
+  /********************************************************************/
+
+  /* Idle Neighbor Record Used by General Neighbor List Message (GNLM) */
+  typedef struct
+  {
+    HOPilotInfo         pilotInfo;       /* pilot information */
+    kal_uint8               searchPriority;
+    kal_uint8               srchWinNghbr;         /* pilot search window size */
+    kal_uint8               srchOffsetNghbr;
+    kal_uint8               nghbrConfig;          /* neighbor's configuration */
+    kal_bool                accessEntryHo;
+    kal_bool                accessHoAllowed;
+    kal_bool                bcchSupport;
+    kal_bool                addPilotRecIncl;
+    PilotRecType        nghbrPilotRecType;
+    kal_uint8               recordLen;
+    HONghbrPilotRec     nghbrPilotRec;
+    PilotMeasurement    measure;
+  } HONghbrIdleRecord;
+
+  /* R.Sattari, 7/5/00 */
+  typedef struct
+  {
+    kal_uint8 bandClass;
+    kal_uint8 sysAB;
+  } HOAnalogNghbrRecord;
+
+  /* R.Sattari, 7/5/00 */
+  typedef struct
+  {
+    kal_uint8               nghbrSetSize;           /* number of entries */
+    kal_uint8               nghbrSrchMode;
+    kal_bool                nghbrConfigPnIncl;
+    kal_bool                freqFieldsIncl;
+    kal_bool                useTime;
+    kal_bool                srchOffsetIncl;
+    kal_bool                bcchIndIncl;
+    kal_bool                settingSearchWin;
+    kal_uint8               globTimeIncl;
+    kal_uint8               globTxDuration;
+    kal_uint8               globTxPeriod;
+    kal_uint8               numNghbr;
+    kal_uint8               numAnalogNghbr;
+    HOAnalogNghbrRecord Arec[CP_MAX_ANALOG_NEIGHBOR_SET];
+    HONghbrIdleRecord rec[CP_MAX_NEIGHBOR_SET];
+	kal_bool                ResqEnabled;
+	kal_uint8                ResqDelayTime;
+	kal_uint8                ResqAllowedTime;
+	kal_uint8                ResqAttemptTime;
+	kal_uint16                ResqCodeChan;
+	kal_uint8                ResqQof;
+	kal_bool                ResqMinPeriodIncl;
+	kal_uint8                ResqMinPeriod;
+	kal_bool                ResqNumTotTransIncl;
+	kal_uint8                ResqNumTotTrans20ms;
+	kal_uint8                ResqNumTotTrans5ms;
+	kal_uint8                ResqNumPreambleRc1Rc2;
+	kal_uint8                ResqNumPreamble;
+	kal_uint8                ResqPowerDelta;
+	kal_bool                NghbrResqConfigured[ CP_MAX_NEIGHBOR_SET];
+  } HONghbrIdleHandoffList;
+
+  typedef enum
+  {
+    NO_SYS_DET,
+    IMMEDIATE,
+    DELAYED
+  } DelaySysDetTypeT;
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+  void hoResetIdleHandoffTestFlag(void);
+  void hoMonitorIdleState(void);
+  void hoMonitorAccessState(void);
+  void hoMonitorIdleHOTimer(void);
+  void hoIdleHandoverRequest(kal_uint16 pilotPN);
+  void hoSetIdleNeighborList(HONghbrIdleHandoffList *idleHORec,
+                             const kal_uint8 neighborListType );
+  kal_uint8 hoGetIdleNeighborListType(void);
+  void hoClearMonitorForStrongestPilot(void);
+  void hoMonitorForStrongestPilot(IdleChangePilotSet *set);
+  void hoCCInitialize(kal_bool powerUp);
+  void hoCCSetIdleHOEnableFlag (kal_uint16 qualifier);
+  void hoCCSetIHOThreshold(kal_uint8 tMax, kal_uint8 t2, kal_uint8 t3,
+                           kal_uint8 hTMax, kal_uint8 tCH1, kal_uint8 tCH2, kal_uint8 hTMin);
+  void hoCCSetNewIHOparameters
+  (
+    const kal_uint8     ThrMinImmed,
+    const kal_uint8     MinActImmed,
+    const kal_uint8     ThrSlopeImmed,
+    const kal_uint8     ThrMinDelayed,
+    const kal_uint8     MinActDelayed,
+    const kal_uint8     ThrSlopeDelayed,
+    const kal_uint8     DelayCount,
+    const kal_uint8     MinNgbhrThr
+  );
+
+  void sendIdlePilotSet( void );
+  DelaySysDetTypeT hoCCgetDelayedSysDet(void);
+  void hoCCsetDelayedSysDet(DelaySysDetTypeT sysDet);
+
+#endif  /*_HO_SET_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ho_cf.h b/mcu/interface/protocol/as_c2k/1xrtt/ho_cf.h
new file mode 100644
index 0000000..c674074
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ho_cf.h
@@ -0,0 +1,252 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     ho_cf.h
+ *
+ * Purpose:    Header file for tc_cf.c
+ *
+ ****************************************************************************
+ *
+ *  RCS Header Information
+ *
+ *  $Revision: 1.3 $
+ *    $Author: hans $
+ *
+ *       $Log: ho_cf.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       02 21 2017 tina.ma
+ *       [MOLY00230712] [Gen93]add DFS Measurement HO stake
+ *       Revision 1.3  2004/09/28 16:36:23  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.2  2004/03/25 12:09:31  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:18:10  bcolford
+ *       Update for merge.
+ *       Revision 1.7  2003/08/01 13:32:59  mclee
+ *       Fix CR2506 by removing all instances of CBP3 compile flag and dead code
+ *       Revision 1.6  2003/01/24 15:51:53  dstecker
+ *       Added prototype
+ *       Revision 1.5  2002/09/26 17:06:43  dstecker
+ *       Added new RESTART event and prototypes for handoff return on fail
+ *       Revision 1.4  2002/08/19 10:40:10  dstecker
+ *       CBP4 candidate frequency implimentation
+ *       Revision 1.3  2002/06/06 13:12:41  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/08/03 15:14:43  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.1  2001/01/17 10:58:43  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:15  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:08:14Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.7  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.6  1998/09/11 02:33:52  scotvold
+ *       Candidate Frequency API changes.
+ *
+ *       Revision 1.5  1998/07/20 23:22:22  scotvold
+ *       Added state machine tracing.
+ *
+ *       Revision 1.4  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.3  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _HO_CF_H_
+
+  #define _HO_CF_H_ 1
+
+
+/****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+#define CF_SF_RX_PWR_THRESH_DISABLED       -48    /* -110 + 2 * 31 */
+#define CF_DIFF_RX_PWR_THRESH_DISABLED     -30    /*  -30 + 2 *  0 */
+
+
+
+/* Private */
+
+typedef enum
+{
+  CF_STOP_ST,
+  CF_IDLE_ST,
+  CF_WFR_SEARCH_TIMES_ST,
+  CF_PENDING_MSG_ST,
+  CF_SEARCH_IDLE_ST,
+  CF_WFR_SEARCH_PERIOD_TIMEOUT_ST,
+  CF_MAX_STATES
+} CFState;
+
+
+typedef enum
+{
+  CF_START_EV,
+  CF_RESTART_EV,
+  CF_STOP_EV,
+  CF_SEARCH_REQUEST_EV,
+  CF_SEARCH_CONTROL_EV,
+  CF_SEARCH_TIMES_EV,
+  CF_SEARCH_REQUEST_ACTION_TIMEOUT_EV,
+  CF_SEARCH_REPORT_EV,
+  CF_PERIODIC_SEARCH_TIMEOUT_EV,
+  CF_PERIODIC_SEARCH_ENABLE_EV,
+  CF_FRESHNESS_TIMEOUT_EV,
+  CF_SEARCH_TIMES_TIMEOUT_EV,
+  CF_MAX_EVENTS
+} CFEvent;
+
+
+
+/****************************************************************************
+ * Public Structures
+ ****************************************************************************/
+
+/* structure to define parameters required by WBIOS to perform a CF search */
+typedef struct
+{
+  SysBandChannelT  channel;
+  kal_uint16           cfTAdd;            /* In Q16 linear units */
+  NghbrSearchMode  cfNghbrSrchMode;
+  kal_uint8            cfSrchWinN;
+  kal_uint8            cfPilotInc;
+} CFSearchParms;
+
+
+/****************************************************************************
+ * Private Structures
+ ****************************************************************************/
+
+typedef struct
+{
+  kal_uint8   lastSrchMsgSeq;
+  kal_uint8   searchType;
+  kal_uint16  searchPeriod;  /* in frames according to table 6.6.6.2.8.3.2-1 */
+  kal_uint8   searchMode;
+} CFSearch;
+
+
+typedef struct
+{
+  kal_uint8  cfCdmaBand;
+  kal_uint16 cfCdmaFreq;
+  /* Added sfTotalECThresh, 
+  and sfTotalECIOThresh Per IS95B Spec.  
+  kal_int8   sfRxPwrThresh; */       /* in dBm/1.23MHz */
+  kal_uint8   sfTotalECThresh;
+  kal_uint8   sfTotalECIOThresh; 
+  kal_int8   sfRxPwrThresh;        /* in dBm/1.23MHz */
+  kal_int8   diffRxPwrThresh;      /* in dBm/1.23MHz */
+  kal_uint8  minTotalPilotEcIo;
+  kal_uint16  cfTAdd;             /* in Q16 linear unit */
+  kal_uint8  cfSrchWinN;
+  NghbrSearchMode  cfNghbrSrchMode;
+} CFCDMASearch;
+
+
+typedef struct
+{
+  kal_uint8  cfWaitTime;
+  kal_uint8  cfPilotInc;
+  kal_uint8  cfSrchWinR;
+} CFCDMAHandoff;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+void hoCFStart (kal_uint8 srchWinN, kal_uint8 srchWinR, kal_uint8 pilotInc);
+void hoCFStop (void);
+void hoCFRestart (void);
+void hoCFRestartPeriodicSearch(kal_uint8 hdmSeq);
+void hoCFResetToIdle(void);
+void hoCFSRQM (CFSRQMData* data);
+void hoCFSCNM (CFSCNMData* data);
+void hoCFSearchTimes (CFSearchTimes* searchTimes);
+void hoCFActionTimeout (void);
+void hoCFSearchReport (CFSearchReport* cfSearchReport);
+void hoCFPeriodicSearchTimeout (void);
+void hoCFFreshnessTimeout (void);
+CFState hoCFGetCandFreqState (void);
+/* HHO with return on fail support */
+void hoSetCFTAdds(kal_uint16 cfTAdds);
+kal_uint16 hoGetCFTAdds( void );
+SysCdmaBandT hoGetCFCdmaBands(void);
+kal_uint16 hoGetCFCdmaChs(void);
+kal_uint8 hoGetCFTfWaitTime(void);
+kal_uint8 hoGetCFPilotInc(void);
+kal_uint8 hoGetCFSrchWinN(void);
+kal_uint8 hoGetCFSrchWinR(void);
+kal_bool  hoGetCFSearchPriorityIncl(void);
+CFSet hoGetCFNghbrSet(void);
+kal_uint32 hoGetCFMinTotalPilotEcIo(void);
+kal_uint8 hoGetLastSrchMsgSeq( void );
+kal_uint8 hoGetNumberOfSearchSetPilots( void );
+kal_bool hoCFNotEnoughTime(void);
+void hoCFFrameInd (void);
+void hoSetCfTestMode(kal_uint16 qualifier, kal_uint16 value);
+#endif  /* _HO_CF_H_ */
+/**Log information: \main\Trophy_0.3.X\1 2013-03-27 07:30:28 GMT yanliu
+** HANDROID#1748: fix for issue when PILOT_INC=2 and SRCH_WIN_N=14**/
+/**Log information: \main\Trophy\1 2013-04-03 06:32:17 GMT yanliu
+** HANDROID#1748: fix for issue when PILOT_INC=2 and SRCH_WIN_N=14**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ho_set.h b/mcu/interface/protocol/as_c2k/1xrtt/ho_set.h
new file mode 100644
index 0000000..d94a593
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ho_set.h
@@ -0,0 +1,520 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   ho_set.h
+ *
+ * Purpose:    Definition of Handoff set configuration and maintenance
+ *             structures and interfaces.
+ *
+ ****************************************************************************
+ *
+ *  VCS Header Information
+ *
+ *
+ *       $Log: ho_set.h $
+ *
+ *       01 21 2019 tina.ma
+ *       [MOLY00379869] [Gen97]merge code from UMOLYE TRUNK
+ *       	
+ *       	merge to VMOLY
+ *       	bar bad cell
+ *
+ *       05 04 2018 yanfeng.xu
+ *       [MOLY00324120] ¡¾ÄÚÍⲿÊÔÓá¿Í¨»°¹ý³ÌÖгöÏÖÉùÒô¶Ï¶ÏÐøÐø
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 04 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       ::KAL type - L3, folder ps
+ *
+ *       03 23 2017 danny.dai
+ *       [MOLY00237433] phase 2 EM for XL3 idle
+ *       	
+ *       	[MOLY00226183] [new feature]C2K EM Develop: EM common header files
+ *       	
+ *       	Phase 2 EM for XL3 idle
+ *
+ *       12 15 2016 sue.zhong
+ *       [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ *       c2k source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.6  2005/10/05 15:01:24  bcolford
+ *       Add prototype for GetPerformSetMaintainence().
+ *       Revision 1.5.1.2  2005/09/27 14:07:14  bcolford
+ *       Add prototype for hoGetPerformSetMaintenance().
+ *       Revision 1.3  2005/08/17 15:17:25  mclee
+ *       Add prototype for hoGetPerformSetMaintenance().
+ *       Revision 1.5  2004/09/28 17:19:33  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.4  2004/04/23 10:50:52  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.3.1.2  2004/04/14 15:20:35  asharma
+ *       Revision 1.3  2004/04/06 14:02:09  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:32  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2004/02/10 12:50:47  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.11  2003/12/17 14:05:06  mshaver
+ *       Fixed CR 2853 by uncommenting the
+ *       #define DISABLE_REMAIN_SET_SEARCH. This will compile out
+ *       the remainder set search software.
+ *       Revision 1.10  2003/12/04 18:21:28  blee
+ *       If DISABLE_REMAIN_SET_SEARCH is enabled, remaining set part of CP code is compiled out.
+ *       Revision 1.9  2003/12/04 18:17:27  blee
+ *       Pilot search for remaining set added
+ *       Revision 1.8  2002/11/11 15:27:55  byang
+ *       CR #1582: Update function prototype declaration
+ *       hoSetIdleActiveSet().
+ *       Revision 1.7  2002/11/04 15:00:44  dstecker
+ *       Added search offset to the candidate handoff structure
+ *       Revision 1.6  2002/10/17 10:01:54  dstecker
+ *       Added preStrength to HOActiveRecord for piolot power averaging
+ *       Revision 1.5  2002/09/26 17:07:31  dstecker
+ *       new prototype for search window functions
+ *       Revision 1.4  2002/06/06 13:12:45  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2001/08/03 15:14:48  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.2  2001/06/12 15:41:14  byang
+ *       Update idle handoff to IS2000 Rev. 0 specifications.
+ *       Revision 1.1  2001/01/17 10:58:46  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:15  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:08:17Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:06:49Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.21  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.20  1999/09/04 02:37:35  scotvold
+ *       Added function hoClearPSMMNotifyFlags() to clear PSMM notify flags
+ *       in the Active and Candidate Sets.
+ *
+ *       Revision 1.19  1999/08/19 23:29:47  scotvold
+ *       Added Pilot Set Maintenance inhibit to TEST_PILOT API.
+ *
+ *       Revision 1.18  1999/07/21 21:12:30  scotvold
+ *       Disjoint Active Set Hard Handoff Fix
+ *       Same Pilot PN but different Code Channel.
+ *
+ *       Revision 1.17  1999/05/19 20:18:39  mhayduk
+ *       Added interface to retrieve the Idle Active Pilot strength.
+ *
+ *       Revision 1.16  1999/05/03 17:12:59  scotvold
+ *       Disabled Set Maintenance from reception of EHDM/GHDM
+ *       to reception of first Pilot Measurement Update after
+ *       Handoff Completion. This inhibits transmission of
+ *       PSMMs during the Handoff Process.
+ *
+ *       Revision 1.15  1999/04/16 20:15:03  scotvold
+ *       Lint fixes.
+ *
+ *       Revision 1.14  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.13  1998/10/31 02:19:17  scotvold
+ *       Pilot Set maintenance optimization test.
+ *
+ *       Revision 1.12  1998/09/11 02:34:32  scotvold
+ *       KEEP field changes. Received Pilot Measurement change.
+ *
+ *       Revision 1.11  1998/08/28 14:43:55  scotvold
+ *       Changed Active/Candidate record notify elements.
+ *
+ *       Revision 1.10  1998/08/14 23:47:53  scotvold
+ *       Major Changes.
+ *
+ *       Revision 1.9  1998/07/28 21:54:40  scotvold
+ *       Added T_COMP support.
+ *
+ *       Revision 1.8  1998/07/10 21:06:34  mhayduk
+ *       Added hoIsPilotInRemaining.
+ *
+ *       Revision 1.7  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.6  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.5  1998/06/10 22:52:17  scotvold
+ *       Added Q16 conversion routine hoQ16toDb()
+ *
+ *       Revision 1.4  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06
+ *
+ * Revision 1.3  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.2  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _HO_SET_H_
+
+#define _HO_SET_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "layer2.h"
+#include "pilots.h"
+#include "Serv_cfg.h"
+#include "Msg_defn.h"
+#include "Serv_neg.h"
+#include "Tc_unf.h"
+#include "Ilistmgr.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+#define HO_INVALID_PN       0xFFFF        /* invalid PN marker */
+
+/* Default value for pilot search priorities */
+#define ENG_SEARCH_PRIORITY_HIGH  2
+
+/* Table 7.7.2.3.2.14-1 Neighbor Configuration Field */
+#define CP_NGHBR_CONFIG_000       0
+#define CP_NGHBR_CONFIG_001       1
+#define CP_NGHBR_CONFIG_010       2
+#define CP_NGHBR_CONFIG_011       3
+#define CP_NGHBR_CONFIG_100       4
+
+/* defines used to distinguish which access HO indicator is being */
+/* updated in the IDLE_HANDOFF_REC */
+#define CP_IDLE_REC_UPDATE_ENTRY    0
+#define CP_IDLE_REC_UPDATE_ALLOWED  1
+
+/* The constants for remaining set management */
+
+#define MAX_NUM_REMAINING_LIST_WITHOUT_NEIGHBOR_LIST     CP_MAX_REMAINING_SET
+
+
+#define MAX_PILOT_PN_INDEX        511
+
+/* Define relationship of neighbor list size and remaining list size. */
+#define MAX_NUM_NEIGHBOR_LIST_0                          0
+#define MAX_NUM_NEIGHBOR_LIST_0_REMAINING_LIST_20        20
+#define MAX_NUM_NEIGHBOR_LIST_10                         10
+#define MAX_NUM_NEIGHBOR_LIST_10_REMAINING_LIST_16       16
+#define MAX_NUM_NEIGHBOR_LIST_20                         20
+#define MAX_NUM_NEIGHBOR_LIST_20_REMAINING_LIST_12       12
+#define MAX_NUM_NEIGHBOR_LIST_30                         30
+#define MAX_NUM_NEIGHBOR_LIST_30_REMAINING_LIST_8        8
+#define MAX_NUM_NEIGHBOR_LIST_40                         40
+#define MAX_NUM_NEIGHBOR_LIST_40_REMAINING_LIST_4        4
+
+/* If Aset < -13dB, Remaining set search will use fast mode,
+ *   then full the search list with remaining pilots. */
+#define T_ASET_FOR_RSET_FAST_MODE    3101   /* -13 dB */
+
+/* Blee : Threshold value of pilot strength for idle mode */
+#define T_ADD_IN_IDLE                1646   /* -16 dB */
+#define T_DROP_IN_IDLE               1038   /* -18 dB */
+#define T_DROP_COUNT_IN_IDLE            3
+
+#define TRIGGER_TRANSMIT_INFO_PILOT_PWR 4135
+#define STOP_TRANSMIT_INFO_PILOT_PWR 10387
+
+/*****************************************************************************
+ * Configuration structure definitions
+ ****************************************************************************/
+
+  /* Handoff Search Configuration information structure */
+  typedef struct
+  {
+    PilotSearchWindow  window;   /* search windows */
+    kal_uint8   nghbrSrchMode;
+    kal_uint8   pilotInc;
+    kal_uint8   nghbrMaxAge;         /* neighbor list age counter max */
+  } HandoffSearchConfig;
+
+
+/* Pilot Set structure definition */
+
+  typedef struct
+  {
+    ActiveRecord     actRec;
+    PilotMeasurement measure;
+    kal_uint16           preStrength;
+
+    /* timer is only used for Traffic set maintenance */
+    kal_bool    dropTimerEnabled; /* indicates if the timer is active     */
+    kal_uint16  dropTimer;        /* pilot handoff drop timer - t_tdrop   */
+    kal_uint8   tDropCount;       /* T_DROP hysteresis counter            */
+    kal_bool    notifyDropTimer;  /* PSMM sent when HO drop timer expires */
+    kal_bool    keep;             /* keep indicator for PSMM message      */
+    kal_uint8   hspdTcompCount;   /* Persistence count for Strong active monitoring in HSPD call */
+  } HOActiveRecord;
+
+
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    PilotMeasurement measure;
+    kal_bool    dropTimerEnabled;  /* indicates if the timer is active    */
+    kal_uint16  dropTimer;         /* pilot handoff drop timer - t_tdrop  */
+    kal_uint8   tDropCount;        /* T_DROP hysteresis counter           */
+    kal_bool    notifyDynamicTAdd; /* PSMM sent when satisfy Dynamic TAdd */
+    kal_bool    notifyTComp[CP_MAX_ACTIVE_SET]; /* PSMM sent for TComp    */
+    kal_uint8   srchOffset;	      /* search offset (0=not included)      */
+    kal_uint8   srchWin_N;         /* Nghbr pilot CH search window size   */
+  } HOCandidateRecord;
+
+
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_bool isDetectedEver;
+    kal_uint8   tDropCount;        /* T_DROP hysteresis counter           */
+    kal_uint8   tAddCount;
+    kal_uint8   delayedIHOCount;
+    kal_bool accessEntryHo;
+    kal_bool accessHoAllowed;
+    PilotMeasurement measure;
+  } HORemainingRecord;
+
+  typedef PACKED_PREFIX struct
+  {
+    kal_uint8  stale;
+    kal_uint16 pilotPn;
+    kal_uint16 pnPhase;
+    kal_uint16 pilotStrength;
+  } PACKED_POSTFIX  MonSpyRemainSearchResultItemT;
+
+  typedef PACKED_PREFIX struct
+  {
+    kal_uint8 numRemainPilots;
+    MonSpyRemainSearchResultItemT remainData[CP_MAX_REMAINING_SET];
+  } PACKED_POSTFIX  MonSpyRemainSearchResultsT;
+
+  typedef struct
+  {
+    kal_uint16          pilotPN;
+    kal_bool            supported;            /* indicates if this band/freq is supported */
+    kal_bool            freqIncl;             /* Set to true if includes band and freq */
+    SysCdmaBandT    band;                 /* CDMA band class */
+    kal_uint16          freq;                 /* CDMA channel number */
+    kal_bool            timeIncl;
+    kal_uint8           nghbrTxOffset;
+    kal_uint8           nghbrTxDuration;
+    kal_uint8           nghbrTxPeriod;
+  } HOPilotInfo;
+
+
+  typedef struct
+  {
+    HOPilotInfo     pilotInfo;
+    kal_uint8           nghbrConfig;          /* neighbor's configuration */
+    kal_bool            accessEntryHo;
+    kal_bool            accessHoAllowed;
+    kal_uint8           srchWinNghbr;
+    kal_uint8           priority;
+    kal_bool            bcchSupport;
+    kal_bool            addPilotRecIncl;
+    PilotRecType    pilotRecType;
+    HONghbrPilotRec pilotRec;
+    kal_uint8           delayedIHOCount;
+  } HONghbrIdlePilot;
+
+
+  typedef struct
+  {
+    kal_uint8  age;
+    kal_bool   remove;  /* used for marking removal during neighbor list update */
+    kal_uint8  tAddCount;
+  } HONghbrTCInfo;
+
+
+  typedef struct
+  {
+    NghbrPilot        pilot;
+    PilotMeasurement  measure;
+    union
+    {
+      HONghbrTCInfo    info;
+      HONghbrIdlePilot pilot;
+    } recType;
+  } HONeighborRecord;
+
+
+  /* Traffic Neighbor Record */
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8   searchPriority;
+    kal_uint8   srchWinNghbr;         /* Traffic search window */
+    kal_uint8   age;
+    PilotMeasurement  measure;
+  } HONghbrTrafficRecord;
+
+
+  typedef struct
+  {
+    HONghbrTrafficRecord rec[CP_MAX_NEIGHBOR_SET];
+  } HONghbrTrafficList;
+
+typedef enum
+  {
+    COMMON,
+    INDIVIDUAL
+  } srchWinNType;
+
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+
+  void   hoConfigSearchWindow(kal_uint8 winA, kal_uint8 winN, kal_uint8 winR, kal_bool sendMsg);
+  void   hoConfigSearchWindowA (kal_uint8 winA, kal_bool sendMsg);
+  void   hoConfigSearchWindowN (kal_uint8 winN);
+  void   hoConfigSearchWindowR(kal_uint8 winR);
+  void   hoConfigPilotInc (kal_uint8 pilotInc);
+  void   hoSetBandChannel (SysBandChannelT* bandChannel);
+  void   hoSetNghbrSrchMode (NghbrSearchMode nghbrSrchMode);
+  void   hoConfigNghbrMaxAge (kal_uint8 maxAge);
+
+  void   hoResetRcvdPilotMeasurement (void);
+  kal_bool   hoRcvdPilotMeasurement (void);
+  void   hoPerformSetMaintenance (kal_bool state);
+  kal_bool   hoGetPerformSetMaintenance (void);
+  void	 resetPMRQO(void);
+
+  HandoffSearchConfig*  hoGetHandoffSearchConfig (void);
+  kal_uint8  hoGetNghbrMaxAge (void);
+  kal_uint16 hoGetPilotInc (void);
+  kal_uint8  hoGetNghbrSrchMode (void);
+  const PilotSearchWindow * hoGetSrchCfgWindow (void);
+  kal_int16  hoIncrementAndGetPilotSeq (void);
+  SysBandChannelT*  hoGetBandChannel (void);
+  kal_uint16 hoGetReferencePN (void);
+  kal_uint16 hoGetActivePilotStrength(void);
+  kal_uint8  hoGetIdleActivePilotStrength(void);
+
+  IListDesc*  hoGetActiveSet    (void);
+  IListDesc*  hoGetCandidateSet (void);
+  IListDesc*  hoGetNeighborSet  (void);
+  IListDesc*  hoGetRemainingSet (void);
+
+ kal_uint16 hoGetNextRemainingSetPilotPN(void);
+ void hoSetRemainingSetPilotPN(kal_uint16 pilotPn);
+ kal_uint8 hoGetNumRemainingSet(void);
+ void hoSetNumRemainingSet(kal_uint8 numRemainSet);
+
+  HOActiveRecord*     hoIsPilotInActiveSet (kal_uint16 pilot);
+  kal_uint16 hoGetPilotStrengthInActiveSet (kal_uint16 pilot);
+  HOCandidateRecord*  hoIsPilotInCandidateSet (kal_uint16 pilot);
+  HONeighborRecord*   hoIsPilotInNghbrSet (kal_uint16 pilot);
+  HORemainingRecord*  hoIsPilotInRemainingSet (kal_uint16 pilot);
+
+  void   hoResetPilotSet (void);
+  void   hoClearSet (kal_bool active, kal_bool candidate, kal_bool neighbor,
+                     kal_bool remaining);
+  void   hoSetIdleActiveSet (kal_uint16 pilotPN, kal_uint8 codeChan,
+                             kal_bool idleHOed, kal_bool sendList);
+
+  void   hoResetIdleHandoff(void);
+  void   hoPilotMeasureReport (kal_int16 pilotSeq, kal_uint16 referencePN,
+                               PilotReport *report);
+  void   hoMonitorPilotSets (void);
+  void   hoMonitorTransmitInfo(void);
+  void   hoMoveActivePilotToCandidateSet (HOActiveRecord* active);
+  void   hoMoveActivePilotToNghbrSet (HOActiveRecord* active);
+  void   hoMoveCandidatePilotToNghbrSet (HOCandidateRecord* candidate);
+  void   hoMoveNghbrPilotToCandidateSet (HONeighborRecord* nghbr, kal_bool setNotifyTComp, kal_uint8 activeEntry);
+  void   hoMoveRemainingPilotToCandidateSet (HORemainingRecord* remaining);
+  void   hoClearPSMMNotifyFlags (void);
+
+  void   hoNghbrPilotAboveTAdd (HOTCPilot* pilot);
+  void   hoRemainingPilotAboveTAdd (HOTCPilot* pilot);
+
+  void   hoSetSrchWinNType(srchWinNType type);
+  srchWinNType hoGetSrchWinNType(void);
+  kal_bool   sendPSMM(kal_bool send);
+  kal_bool   sendPeriodicPSMM(void);
+
+  kal_bool   sendRequestedPSMM(void);
+  kal_bool sendRequestedEPSMM(void);
+  void hoBuildRemainingPilotList(const kal_uint16 pilotInc, kal_uint16 firstPilotPn );
+  void hoUpdateRemainingPilotList(void);
+  void hoSetRemainingSetSearchEnable(kal_bool enable, kal_uint8 maxNumRemaining);
+  void hoSetTransmitInfoMode(kal_uint8 Mode);
+  kal_bool cpLocValidBsIsStillActive(SysCdmaBandT band, kal_uint16 channel, kal_uint16 pilot_pn);
+  kal_uint16 hoGetStrongestActivePnStrength (void);
+  kal_uint16 hoGetStrongestActivePn (void);
+  kal_uint16 cpGetStrongestSavedOvhdAsetPn(void);
+  kal_uint16 cpUpdateBadCellMeas(kal_uint16 pilotPN, kal_uint16 strength);
+
+#ifdef MTK_DEV_C2K_IRAT
+  void hoIratGetStrongestPilot(HOTCPilot *rec);
+  void hoIratWeakSysMonitor(kal_bool enable, kal_uint8 thresh);
+#endif /* MTK_DEV_C2K_IRAT */
+
+#ifdef MTK_DEV_C2K_IRAT
+  void hoRsvasSetVirtualMode(kal_bool enterVirtualMode);
+  void hoRsvasSetVitualSuspendState(kal_bool virtualSuspended);
+  kal_bool hoRsvasGetVitualSuspendState(void);
+  void hoRsvasSetNewNghbrListPending(kal_bool pending);
+  kal_bool hoRsvasGetNewNghbrListPending(void);
+#endif
+
+#endif  /*_HO_SET_H_ */
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10099\1 2012-07-27 09:01:00 GMT gdeng
+** SCBP#10099 **/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ho_tc.h b/mcu/interface/protocol/as_c2k/1xrtt/ho_tc.h
new file mode 100644
index 0000000..997f61c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ho_tc.h
@@ -0,0 +1,339 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   ho_tc.h
+ *
+ * Purpose:    Definition of the Traffic Channel Active Set
+ *             structures and interfaces.
+ *
+ ****************************************************************************
+ *
+ *  RCS Header Information
+ *
+ *  $Revision: 1.6 $
+ *    $Author: bcolford $
+ *
+ *       $Log: ho_tc.h $
+ *
+ *       06 18 2019 angie.wu
+ *       [MOLY00411583] [Global Variable][C2K PDCA][VMOLY]XL2 counters remove&modify
+ *       	
+ *       	 cross task value[bHHOstart]
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 04 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       ::KAL type - L3, folder ps
+ *
+ *       06 14 2017 danny.dai
+ *       [MOLY00257397] [Bianco][N1] Externel (EE),0,0,99,/data/core/,1,modem,Trigger time:[2017-06-12 17:16:39.917219] md1:(MCU_core0.vpe0.tc0(VPE0)) [ASSERT] file:mcu/common/modem/c2k/ps/isotel/pe/Ho_set.c line:1658
+ *       	
+ *       	Trunk: modify XL3 EM for report state changed
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.6  2005/10/20 09:26:12  bcolford
+ *       CR No. 7038: Correct the phase of al the pilots for the PSMM and PPSMM messages.
+ *       Revision 1.5.1.2  2005/10/06 11:24:21  bcolford
+ *       Correct the phase of al the pilots for the PSMM and PPSMM
+ *       messages.
+ *       Revision 1.6  2005/08/31 18:26:13  winston
+ *       CR6641: add function for retrieving set maintenance parameters
+ *       Revision 1.5  2005/03/18 10:24:51  bcolford
+ *       CBP4.05 [4.21] to CBP6.1 [2.9.0] CP Software Merge.
+ *       Revision 1.3  2005/01/14 16:18:00  mclee
+ *       - Add #define WALSH_CODE_127
+ *       Revision 1.4  2004/09/28 16:37:56  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.3  2004/04/23 10:50:58  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.2.1.2  2004/04/14 15:20:41  asharma
+ *       Revision 1.2  2004/03/25 12:09:33  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2004/02/10 12:50:49  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.12  2003/10/15 15:42:51  mclee
+ *       Add hoTCGetTMulChan() function to return saved _T_MULCHAN value.
+ *       Revision 1.11  2002/12/26 16:14:10  dstecker
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0
+ *       Revision 1.10  2002/08/15 12:28:10  dstecker
+ *       Added HO_MIN_PILOT_EIGHTH_DB define
+ *       Revision 1.9  2002/08/13 13:18:10  dstecker
+ *       prototypes
+ *       Revision 1.8  2002/06/06 13:12:49  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.7  2002/02/06 11:39:07  mclee
+ *       Remove prototype hoGetCodeChan
+ *       Revision 1.6  2001/12/14 17:10:17  mclee
+ *       Prototype hoGetCodeChan()
+ *       Revision 1.5  2001/10/29 09:40:03  mclee
+ *       Modified code to enforce kal_bool to strictly enum type KAL_TRUE or KAL_FALSE
+ *       Revision 1.4  2001/08/03 15:14:56  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.3  2001/03/23 14:57:42  akayvan
+ *       Added declaration for cpClearECAMParams().
+ *       Revision 1.2  2001/03/16 11:31:36  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.1  2001/01/17 10:58:48  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:16  fpeng
+ *       Initial revision
+ *       Revision 1.4  2000/08/31 23:41:55Z  bcolford
+ *       Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *       Revision 1.3  2000/08/23 22:08:20Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.23  2000/03/01 01:54:43  scotvold
+ *       CDMA -> AMPS handoff changes.
+ *
+ *       Revision 1.22  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.21  1999/09/02 23:54:25  scotvold
+ *       Updated T53 HSPD to Rev. X7.
+ *
+ *       Revision 1.20  1999/08/19 23:29:47  scotvold
+ *       Added Pilot Set Maintenance inhibit to TEST_PILOT API.
+ *
+ *       Revision 1.19  1999/05/19 16:26:55  mhayduk
+ *       Added parameter to hoTCSetT53PRev3Plus() call to enable or
+ *       disable the T53 MSD setting.
+ *
+ *       Revision 1.18  1999/04/13 21:07:00  dfischer
+ *       Added hoTCPowerUp() function.
+ *
+ *       Revision 1.17  1999/04/12 13:42:31  scotvold
+ *       Put back hoTCGetTAdd() call.
+ *
+ *       Revision 1.16  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.15  1999/02/08 22:52:38  scotvold
+ *       Changed hoTCHandoffCompleteInd() interface.
+ *
+ *       Revision 1.14  1998/11/20 16:41:52  scotvold
+ *       Removed TEST_PILOT T_DROP optimization functions.
+ *
+ *       Revision 1.13  1998/11/02 22:05:42  scotvold
+ *       Moved ENCRYPT_MODEs to eng_tc.c.
+ *
+ *       Revision 1.12  1998/10/31 02:19:17  scotvold
+ *       Pilot Set maintenance optimization test.
+ *
+ *       Revision 1.11  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.10  1998/09/11 16:24:30  scotvold
+ *       Handoff API changes.
+ *
+ *       Revision 1.9  1998/09/11 02:36:00  scotvold
+ *       Added changeTimers kal_bool to hoTCConfigThreshold().
+ *
+ *       Revision 1.8  1998/08/28 21:47:40  mhayduk
+ *       Fixes from linting.
+ *
+ *       Revision 1.7  1998/08/28 14:46:03  scotvold
+ *       Added defines.
+ *
+ *       Revision 1.6  1998/08/18 16:57:23  scotvold
+ *       Passed long code state to hoTCExtHandoffDirectionActionTimeout().
+ *
+ *       Revision 1.5  1998/08/14 23:48:07  scotvold
+ *       Major changes.
+ *
+ *       Revision 1.4  1998/08/11 23:03:25  scotvold
+ *       Added HDM_SEQ support.
+ *
+ *       Revision 1.3  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.2  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _HO_TC_H_
+
+#define _HO_TC_H_ 1
+
+#include "status.h"
+#include "pilots.h"
+#include "pch_msg.h"
+#include "l1dapi.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+#define  WALSH_CODE_1  1
+#define  WALSH_CODE_63 63
+#define  WALSH_CODE_127 127
+
+#define  HO_MAX_PILOT_EC_IO  65535U
+#define  HO_MIN_PILOT_EC_IO  46
+#define  HO_MAX_PILOT_DB     0
+#define  HO_MIN_PILOT_DB     63
+#define  HO_MIN_PILOT_EIGHTH_DB     253
+
+#define  HO_DO_NOT_CHANGE_TIMERS  KAL_FALSE
+#define  HO_CHANGE_TIMERS         KAL_TRUE
+
+#define DEFAULT_NGHBR_SRCH_WIN  10
+
+/*****************************************************************************
+ * Structure definitions
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+void   hoTCPowerUp (void);
+void   hoTCInitialization (void);
+kal_uint8  hoTCGetHDMSeq (void);
+kal_uint8  hoTCGetFrameOffset (void);
+kal_uint8  hoTCGetTMulchan(void);
+kal_uint16 hoTCGetStrongestActivePn (void);
+void   hoTCInitializeStrongestActivePn(void);
+
+kal_uint16 hoTCGetTAdd (void);
+kal_uint16 hoTCGetTDrop (void);
+kal_uint16 hoTCGetTComp (void);
+kal_uint16 hoTCGetTTDrop (void);
+PHDMData* hoTCGetPHDMData (void);
+void   hoTCConfigThreshold (kal_uint8 tAdd, kal_uint8 tDrop, kal_uint8 tComp,
+                            kal_uint8 tTDrop, kal_bool changeTimers);
+void   hoTCAssignCodeChan (kal_uint8 codeChan, kal_uint8 frameOffset,
+                           TCActiveList* activeList, kal_bool bandChannelChange);
+void   hoTCAssignActiveSet (kal_uint8 numPilots, ActiveInitPilot activeInit[],
+                            kal_uint8 frameOffset, TCActiveList* activeList, kal_bool bandChannelChange);
+void   tcSetL1dFieldsECAM (kal_uint8 forRc, kal_uint8 revRc, kal_uint8 fpcSubchanGain,
+                                kal_bool revFchGatingMode, kal_bool revPwrCntlDelayIncl,
+                                kal_uint8 revPwrCntlDelay);
+
+void   tcSetL1dChIndFields( kal_uint8 chInd,
+  kal_uint8 fpcFchInitSetpt, kal_uint8 fpcFchFer, kal_uint8 fpcFchMinSetpt, kal_uint8 fpcFchMaxSetpt,
+  kal_uint8 fpcDcchInitSetpt, kal_uint8 fpcDcchFer, kal_uint8 fpcDcchMinSetpt, kal_uint8 fpcDcchMaxSetpt, kal_bool fpcPriChan );
+
+void   hoTCAssignActiveSetChInd01 (kal_uint8 numPilots, FcschExtAssignPilotRec01 activeInit[],
+                                   kal_uint8 frameOffset, kal_bool bandChannelChange );
+
+void   hoTCAssignActiveSetChInd10 (kal_uint8 numPilots, FcschExtAssignPilotRec10 activeInit[],
+                                   kal_uint8 frameOffset, kal_bool bandChannelChange );
+
+void   hoTCAssignActiveSetChInd11 (kal_uint8 numPilots, FcschExtAssignPilotRec11 activeInit[],
+                                   kal_uint8 frameOffset, kal_bool bandChannelChange);
+
+void   hoTCAssignActiveSetExtChInd (kal_uint8 numPilots, FcschExtAssignPilotRec101 activeInit[],
+  kal_uint8 frameOffset, kal_bool bandChannelChange );
+
+void hoTCSoftHandoffCompleteInd (void);
+void hoTCHardHandoffCompleteInd (void);
+
+L1dTrafficChanStartMsgT* cpGetECAMParams(void);
+void cpClearECAMParams(void);
+
+FcschChIndType cpGetChInd(void);
+void cpSetChInd( const FcschChIndType chInd );
+FcschChIndType cpGetChIndfromExtChInd( TCExtChInd extChInd );
+
+void   hoTCNeighborSetInit (void);
+void   hoTCRemainingSetInit (void);
+void   hoTCSendPilotSet (void);
+void   hoTCNLUM (NLUMUData* data);
+void   hoTCSetMaintenance (void);
+void   hoTCPilotTimerTick (void);
+void   hoTCHDM(HDMData* hdmData, RCPMData* geRadioConfigParms);
+void   hoTCHandoffCompleteInd (void);
+void   hoTCSCAM (SCAMData* scamData);
+kal_uint8  hoTCQ16toDb (kal_uint16 q16);
+kal_uint8  hoTCQ16to8thDb (kal_uint16 q16);
+kal_uint16 hoTCDbtoQ16 (kal_uint8 dB);
+
+void   hoTCResetSoftSlope (void);
+void   hoTCConfigIntercept (kal_uint8 softSlope, kal_int8 addIntercept,
+                            kal_int8 dropIntercept);
+void   hoTCSetActiveSet (kal_uint8 numPilots, ActivePilot activeSet[]);
+
+void hoPSMMPeriodicTimeout(void);
+void hoSetPeriodicPSMMPwrThresh (kal_uint8 minPilotPwrThresh);
+void hoSetPeriodicPSMMECIOThresh (kal_uint8 minPilotECIOThresh);
+void hoSetPeriodicPSMMPeriod (kal_uint32 period);
+kal_bool hoGetTfResetL2s(void);
+kal_bool hoGetTfResetFpcs(void);
+SysCdmaBandT hoGetTfCdmaBands(void);
+kal_uint16 hoGetTfCdmaChs(void);
+SysCdmaBandT hoGetSfCdmaBands(void);
+kal_uint16 hoGetSfCdmaChs(void);
+kal_bool hoGetPeriodicSearchs(void);
+void hoSetPeriodicSearchs(kal_bool periodicSearch);
+kal_bool hoGetCompleteSearchs(void);
+void hoSetHhoStart(kal_bool hhoStart);
+void hoRestoreParmBeforeHandoff(void);
+void hoFormatHOCM(kal_uint8 hoType);
+FTCActiveList hoGetActiveSetFromHOMsg (void);
+HOActiveRecord* findStrongestActive(void);
+kal_uint32 getActivePilotStrength(void);
+void getSetMaintenanceParams(kal_uint16* tAdd, kal_uint16* dynamicTAdd, kal_uint8* softSlope);
+void hoSetDelayedSerNegDuringMOTCInitFlag(kal_bool status);
+kal_bool hoGetDelayedSerNegDuringMOTCInitFlag(void);
+void pPilotReportProc(void);
+void hoSetHandoffDuringMOTCInitFlag(kal_bool status);
+#ifdef IS2000_REV_0
+void   hoChanIdSet( kal_uint8 chInd );
+kal_uint8  hoChanIdGet( void );
+#endif
+
+#endif  /*_HO_TC_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/identity.h b/mcu/interface/protocol/as_c2k/1xrtt/identity.h
new file mode 100644
index 0000000..6653e8c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/identity.h
@@ -0,0 +1,341 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   identity.h
+ *
+ * Purpose:    Define externally available (global) mobile station identity
+ *             elements.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.5 $
+ *    $Author: hans $
+ *
+ *       $Log: identity.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *       Revision 1.5  2005/10/06 17:34:53  hans
+ *       Merged the appropriate changes from the CBP4.05 CP SW baseline to address CR6049,CR7031,CR7032,CR7033,CR7034
+ *       Revision 1.4  2005/03/18 10:24:52  bcolford
+ *       CBP4.05 [4.21] to CBP6.1 [2.9.0] CP Software Merge.
+ *       Revision 1.2  2004/08/13 10:03:29  agontar
+ *       Removed T53 flag; added support for BC3; cleaned up logs
+ *       Revision 1.3  2004/04/06 14:02:10  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:34  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:18:15  bcolford
+ *       Update for merge.
+ *       Revision 1.11  2003/05/21 17:11:22  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.10  2002/12/04 14:43:55  hans
+ *       CR1648: OP mode setting i retrieved direct from ms cap db.
+ *       Revision 1.9  2002/09/30 15:15:26  mshaver
+ *       Changes to support the single NAM data structure type
+ *       definition PswIs95NamT, of type packed.
+ *       Revision 1.8  2002/06/06 13:12:53  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.7  2002/01/17 17:18:36  akayvan
+ *       Implemented Slotted Mode mods.
+ *       Revision 1.6  2001/11/20 12:26:30  mclee
+ *       include pswnam.h
+ *       Revision 1.5  2001/11/13 15:37:30  byang
+ *       Add function prototype declaration for cpValidatePRev().
+ *       Revision 1.4  2001/07/27 16:33:09  mclee
+ *       Nam Consolidation fix port from 3.0 to 4.0
+ *       Revision 1.3  2001/07/26 14:35:11  bcolford
+ *       Add reference for Nam which is used throughout the AMPS
+ *       PE software
+ *       Revision 1.1  2001/01/17 10:58:50  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/22 11:45:44  byang
+ *       Consolidate IS2000 global variables into the global structure
+ *       IS2000_NETWORK_PARAMETERS.
+ *       Revision 1.3  2000/12/05 17:45:11  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:25:59  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:17Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:09:05Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.14  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.13  1999/05/19 16:28:08  mhayduk
+ *       Added support for setting and retrieving value for T53 MSD
+ *       P_REV 3+ setting.
+ *
+ *       Revision 1.12  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.11  1999/02/20 00:39:52  scotvold
+ *       Added message encryption support.
+ *
+ *       Revision 1.10  1999/02/08 22:53:10  scotvold
+ *       Lint fixes.
+ *
+ *       Revision 1.9  1999/01/09 00:33:45  scotvold
+ *       Added SSDUpdateInProgress flag interface.
+ *
+ *       Revision 1.8  1998/11/20 16:21:21  mhayduk
+ *       Moved opmode definitions into header file.
+ *
+ *       Revision 1.7  1998/11/02 22:06:40  scotvold
+ *       Compile switch for OP_MODEs and P_REV_IN_USEs.
+ *
+ *       Revision 1.6  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.5  1998/07/31 16:08:50  scotvold
+ *       Wrapped Call History Parameter.
+ *
+ *       Revision 1.4  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _IDENTITY_H_
+
+#define _IDENTITY_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pch_msg.h"
+#include "channel.h"
+#include "systime.h"
+#include "pswapi.h"
+
+/**********************************************************************
+ * Defines
+ **********************************************************************/
+#define CP_HASH_CDMA_CH       0
+#define CP_HASH_PAGE_CH       1
+#define CP_HASH_PAGE_SLOT     2
+#define CP_HASH_ACCESS_CH_PN  3
+#define CP_HASH_BCCH          4
+#define CP_HASH_FCCCH         5
+#define CP_HASH_QPCH          6
+#define CP_HASH_PI_R1         7
+#define CP_HASH_PI_R2         8
+
+/* Define table for mapping op modes by index - Table 7.7.2.3.2.15-3 */
+#define CP_OP_MODE_CDMA_PCS       0
+#define CP_OP_MODE_CDMA_CELLULAR  1
+#define CP_OP_MODE_ANALOG         2
+
+/* type of IMSI_O */
+typedef enum
+{
+  IMSI_O_TYPE_M = 0,
+  IMSI_O_TYPE_T = 1
+} IMSI_O_TYPE;
+
+#define MEID_SIZE 7
+
+typedef struct
+{
+   kal_uint16 type;
+   kal_uint8  meid[MEID_SIZE + 1];
+   kal_uint32 esn;
+} MsidInUseT;
+
+extern PswFTDParaT FTDPara;
+
+static const kal_uint16 CP_INVALID_PN = 0xFFFF;
+
+/**********************************************************************
+ * Global declarations associated with Mobile's identity and shared
+ * amongst files.
+ **********************************************************************/
+
+  /* NAM */
+  /* Consolidate PE and PSW NAM */
+extern PswIs95NamT Nam;              /* NAM data */
+extern SecureDataStructT Sdata;      /* Secure data */
+extern MsidInUseT _msidInUse;        /* MEID/Pseudo ESN or ESN used by CP */
+/* IMSI */
+extern IMSIType IMSI_O;              /* operational IMSI               */
+extern kal_uint16 MCCs;
+extern kal_uint8 IMSI_11_12s;
+extern IMSI_O_TYPE IMSI_O_Type;
+
+#ifdef MTK_DEV_C2K_IRAT
+extern kal_uint16 MCC_1xOTA;
+#endif /* MTK_DEV_C2K_IRAT */
+
+/* System Parameters for control channels (globally viewed) */
+extern SysBandChannelT CDMA_CHs;         /* contains CDMABANDs and CDMACHs */
+extern kal_uint16 PILOT_PNs;
+extern kal_uint8 interCorrSrchCountThresh;
+extern kal_uint8 interCorrectionCorrection;
+extern kal_uint8 achSleepSearchCount;
+
+  /* Begin: added systerm identity parameters from IS-2000A */
+
+typedef struct
+{
+   /* Forward Common Control Channel Parameters */
+   kal_uint8            FCCCHs;
+   FccchRate       FCCCH_RATEs;
+   kal_uint8            FCCCH_CODE_RATEs;
+   kal_uint8            FCCCH_CODE_CHANs;
+   kal_uint8            FCCCH_IDs;
+   kal_uint8            NUM_FCCCHs;
+   kal_uint8            FCCCH_CODE_CHAN[ CP_MAX_FCCCH_CODE_CHAN ];
+
+    /* SR1 Parameters */
+   kal_uint8            BCNs;
+   BcchRate        BRATs;
+   kal_uint8            BCCH_CODE_RATEs;
+   kal_uint8            BCCHs;
+   kal_bool            SR1_BCCH_SUPPORTEDs;
+   Sr1TdModes      SR1_TD_MODEs;
+   Sr1TdPowerLevel SR1_TD_POWER_LEVELs;
+   BcchRate        SR1_BRAT_TDs;
+   kal_uint8            SR1_CRAT_TDs;
+   BcchRate        SR1_BRAT_NON_TDs;
+   kal_uint8            SR1_CRAT_NON_TDs;
+   kal_uint8            BCCH_CODE_CHAN_TDs;
+   kal_uint8            BCCH_CODE_CHAN_NON_TDs;
+
+   /* SR3 Parameters */
+   kal_bool            SR3_INCLs;
+   kal_uint8            SR3_PRIMARY_PILOTs;
+   kal_uint8            SR3_PILOT_POWER1s;
+   kal_uint8            SR3_PILOT_POWER2s;
+
+    /* BCast Parameters */
+   kal_uint8            NUM_BCCH_BCASTs;
+   BcchBcast       BCCH_BCAST[ MAX_NUM_BCCH_BCAST ];
+
+    /* Quick Paging Channel Parameters */
+   kal_bool            QPCH_SUPPORTEDs;
+   kal_uint8            NUM_QPCHs;
+   kal_uint8            QPAGECHs;
+   kal_uint8            ASSIGNED_QPAGECHs;
+   QpchRate        QPCH_RATEs;
+   QpchTransPwr    QPCH_POWER_LEVEL_PAGEs;
+   kal_bool            QPCH_CCI_SUPPORTEDs;
+   QpchTransPwr    QPCH_POWER_LEVEL_CONFIGs;
+   kal_bool            QPCH_BI_SUPPORTEDs;
+   QpchTransPwr    QPCH_POWER_LEVEL_BCASTs;
+
+    /* Network Feature Parameters */
+   kal_bool            CS_SUPPORTEDs;
+   kal_bool            SDB_SUPPORTEDs;
+} IS2000NetworkParameters;
+
+extern IS2000NetworkParameters IS2000_NETWORK_PARAMETERS;
+
+/* End: added systerm identity parameters from IS-2000A */
+
+extern kal_uint8 P_REVs;
+extern kal_uint8 MIN_P_REVs;
+extern kal_uint8 P_REV_IN_USEs;
+
+/* this group may only be local to eng_init.c */
+extern kal_uint8 SERVSYSs;
+
+/* Scratch Buffer */
+extern kal_uint8 scratch_[];
+
+/* Rx Msg Static Union */
+extern RxMsg rxMsg_;
+
+/**********************************************************************
+ * Prototypes of utilities used in setting/retrieving identity information.
+ **********************************************************************/
+
+void initializeIdentity( void );
+kal_bool retrieveRedirectionChannel( SysBandChannelT *channel);
+kal_bool cpIsOpModeSupported(kal_uint8 opMode);
+kal_uint32 divideIntegers(kal_uint32 div,kal_uint32 base,kal_uint32 upper,kal_uint32 *rem);
+kal_uint16 hash(kal_uint16 range,kal_uint8 application);
+void randomNumberSetSeed(kal_uint32 time);
+kal_uint32 randomInteger(kal_uint32 range);
+kal_uint16 TenBitsToDigital(kal_uint16 n);
+kal_bool  cpAccessPsistDelay(kal_uint8 psist, kal_uint8 psist_emg,kal_uint8 accolc,kal_bool secondTerm,
+                         kal_uint8 typePsist,kal_bool *fail);
+void  cpInitializeCallHistoryParm (kal_uint8 count);
+kal_uint8 cpGetCallHistoryParm (void);
+void  cpIncrementCallHistoryParm (void);
+
+void setSSDUpdateInProgress (kal_bool ssdUpdateState);
+kal_bool ssdUpdateInProgress (void);
+
+kal_bool iAm95 (void);
+kal_bool iAm95A (void);
+kal_bool iAmTSB74 (void);
+kal_bool iAmJSTD008 (void);
+kal_bool iAmT53Stream (void);
+kal_bool iAmT53Plus (void);
+kal_bool cpValidatePRev( const kal_uint8 pRev );
+
+#endif /* _IDENTITY_H_ */
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\1 2012-07-26 06:27:57 GMT cshen
+** cbp80_cshen_scbp10098**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/imsi.h b/mcu/interface/protocol/as_c2k/1xrtt/imsi.h
new file mode 100644
index 0000000..a255aa7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/imsi.h
@@ -0,0 +1,117 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   imsi.h
+ *
+ * Purpose:    Definition of IMSI_TYPE and supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *       $Log: imsi.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:34  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:49  fpeng
+ *       Initial revision
+ *       Revision 1.3  2002/06/06 13:13:01  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/11/20 12:31:11  mclee
+ *       Removed ImsiType struct
+ *       Revision 1.1  2001/01/17 10:58:52  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:17  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:09:08Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.5  1999/01/07 16:29:24  mhayduk
+ *       Added new "imsi class" element to structure to easily
+ *       distinguish it.
+ *
+ *       Revision 1.4  1998/05/27 17:16:28  scotvold
+ *       Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _IMSI_H_
+
+  #define _IMSI_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+
+/*****************************************************************************
+ * Define
+ ****************************************************************************/
+  /* IMSI class length defintions, ie. addr_num range */
+  #define CP_CLASS1_MAX_SIZE         7
+  #define CP_IMSI_CLASS_0            0
+  #define CP_IMSI_CLASS_1            1
+
+  /* IMSI field widths are contained in field.h */
+
+/*****************************************************************************
+ * IMSI function prototypes
+ ****************************************************************************/
+
+#endif  /*_IMSI_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/itrace.h b/mcu/interface/protocol/as_c2k/1xrtt/itrace.h
new file mode 100644
index 0000000..36d4161
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/itrace.h
@@ -0,0 +1,224 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       itrace.h
+ * Project:         Protocol Engine tracing header file
+ *
+ * Original Author: Stuart Harker
+ * Creation Date:   August 10, 1998
+ *
+ * Description:     
+ *
+ * Restrictions:
+ * Dependencies:
+ *
+ **************************************************************************
+ **************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: itrace.h $
+ *
+ * 10 27 2017 sue.zhong
+ * [MOLY00284146] [MT6763][SMO][C2K]Remove relative include path in source and header file
+ * .
+ *
+ *
+ ************************************************************************/
+
+#ifndef _ITRACE_H_
+#define _ITRACE_H_ 1
+
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+
+/* Each Protocol Engine module has a unique ID */
+/* ********* DO NOT MODIFY ********** */
+enum
+{
+  ISOLIB_ENGINE_ID,       /* ISOLIB modules */
+  CP_ENGINE_ID,           /* Call Processing engine     */
+  RLP_ENGINE_ID,          /* RLP protocol engine        */
+  PPP_ENGINE_ID,          /* PPP protocol engine        */
+  TCPIP_ENGINE_ID,        /* TCP/IP/UDP protocol engine */
+  NSPE_ENGINE_ID,         /* NSPE protocol engine       */
+  APPINT_ENGINE_ID,       /* AppInt protocol engine     */
+  LAYER1_ENGINE_ID,       /* Layer 1 driver engine      */
+  SMS_ENGINE_ID,          /* SMS PE */
+  OTA_ENGINE_ID,          /* OTA PE */
+  MEM_ENGINE_ID,          /* MEM utility */
+  SCC_ENGINE_ID,          /* SCC */
+  BIC_ENGINE_ID,          /* Beta Interface Controller  */
+  MB_ENGINE_ID,
+  MCM_ENGINE_ID,
+  CSS_ENGINE_ID,            /*Custom System Selection*/
+  EXT_APPINT_ENGINE_ID,   /*Extended AppInt protocol engine */
+  NUM_ENGINE_IDS          /* this must be last          */
+};
+typedef kal_uint8 ProtocolEngineID;
+
+/*****************************************************************************
+ * Trace definitions
+ ****************************************************************************/
+#define TOKEN_TRACING 0
+#define STRING_TRACING 1
+
+#ifdef TRACEON
+
+#define TRACE_TABLE(name,id,len) const char* name[len]
+
+#ifndef ITRACE_TYPE
+#define ITRACE_TYPE TOKEN_TRACING
+#endif
+
+/* enable Tracing in the engine code */
+#define TraceIt
+
+/* Trace levels; LEVEL0 = little detail; LEVEL5 = lots of detail */
+typedef enum
+{
+  LEVEL0=0,
+  LEVEL1,
+  LEVEL2,
+  LEVEL3,
+  LEVEL4,
+  LEVEL5
+} TraceLevel;
+
+
+/* this is the maximum number of categories per engine */
+#define MAX_NUM_TRACE_CATEGORIES  100
+
+
+/*****************************************************************************
+ * Trace Function Prototypes
+ ****************************************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if (ITRACE_TYPE == TOKEN_TRACING)
+
+#define TRACE_INSTALL(s, i)  static const kal_uint8 MyNameID = i;
+
+void engTraceEvent (const ProtocolEngineID engine_id, 
+                    const kal_uint8 cat, const kal_uint8 level,
+                    const kal_uint8 moduleId, const kal_uint8 token,
+                    kal_uint8 size1, kal_uint8 *var1, 
+                    kal_uint8 size2, kal_uint8 *var2);
+
+void engTraceIndexEvent (const ProtocolEngineID engineId,
+                         const kal_uint8 cat, const kal_uint8 level,
+                         const kal_uint8 modId, const kal_uint8 token,
+                         kal_uint16 tableID, kal_uint16 index);
+
+void engTraceStringEvent (const ProtocolEngineID engine_id, 
+                          const kal_uint8 cat, const kal_uint8 level,
+                          const kal_uint8 mod_id, const kal_uint8 token,
+                          char *var1);
+
+void engTraceDataEvent (const ProtocolEngineID engineId, 
+                        const kal_uint8 cat, const kal_uint8 level,
+                        const kal_uint8 moduleId, const kal_uint8 token,
+                        int size, kal_uint8 *var1);
+
+#ifdef SYS_DEBUG_FAULT_FILE_INFO
+
+void engAssert (const ProtocolEngineID engineId, const kal_uint8 moduleId,
+                const char *filename, unsigned line);
+
+#else
+
+void engAssert (const ProtocolEngineID engineId, const kal_uint8 moduleId,
+                unsigned line);
+
+#endif /* SYS_DEBUG_FAULT_FILE_INFO */
+
+
+#else /* !TOKEN_TRACING */
+
+#define TRACE_INSTALL(s, i) static const char MyName[] = s;
+
+void engTraceEvent (const ProtocolEngineID engine_id, 
+                    const kal_uint8 cat, const kal_uint8 level,
+                    const char *modName, 
+                    char *string, kal_uint8 size1, void *var1,
+                    kal_uint8 size2, void *var2);
+
+void engTraceIndexEvent (const ProtocolEngineID engineId,
+                         const kal_uint8 cat, const kal_uint8 level,
+                         const char* modName,
+                         char* string, const char* table[],
+                         kal_uint16 index);
+
+void engTraceStringEvent (const ProtocolEngineID engine_id, 
+                          const kal_uint8 cat, const kal_uint8 level,
+                          const char *modName,
+                          char *string, char *var1);
+
+void engTraceDataEvent (const ProtocolEngineID engineId, 
+                        const kal_uint8 cat, const kal_uint8 level,
+                        const char *modName,
+                        char *str, int size, kal_uint8 *var1);
+
+void engAssert (const char *modName, unsigned line);
+
+#endif /* ITRACE_TYPE */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#else   /* !TRACEON */
+#define TRACE_INSTALL(s, i)
+
+#endif  /* TRACEON */
+#endif  /* _ITRACE_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/layer2.h b/mcu/interface/protocol/as_c2k/1xrtt/layer2.h
new file mode 100644
index 0000000..a415d12
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/layer2.h
@@ -0,0 +1,288 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     layer2.h
+ *
+ * Purpose:    Header file containing the structures for the layer 2 operation.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.5 $
+ *   $Modtime$
+ *    $Author: wfu $
+ *
+ *       $Log: layer2.h $
+ *
+ *       09 18 2020 yanfeng.xu
+ *       [MOLY00559524] [Wingtech][Samsung][MT6765][N21][P200813-06136][SMC_Message][USC] CMAS containing Record Type is not received
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.5  2005/07/18 16:48:26  wfu
+ *       Fix CR6696: add two new L2FTCState:L2_FTC_HARD_HANDOFF_INIT_ST and
+ *         L2_FTC_HARD_HANDOFF_W_RTN_ON_FAIL_INIT_ST
+ *       Revision 1.4  2005/03/18 11:44:42  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.3  2004/04/06 14:02:11  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:37  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:19:43  bcolford
+ *       Update for merge.
+ *       Revision 1.18  2003/08/01 13:33:26  mclee
+ *       Fix CR2506 by removing all instances of CBP3 compile flag and dead code
+ *       Revision 1.17  2003/05/21 17:11:34  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.16  2002/12/26 12:08:01  hans
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0 for rev A and Rev 0 specific code.
+ *       Revision 1.15  2002/09/26 17:10:05  dstecker
+ *       Added prototype
+ *       Revision 1.14  2002/08/29 14:07:02  dstecker
+ *       Changed l2totalRxPower prototype
+ *       Revision 1.13  2002/08/27 17:07:22  byang
+ *       Add new frame category for DCCH only discontinous
+ *       mode.  Insert function prototype declaration for pinging the BS.
+ *       Revision 1.12  2002/08/19 10:45:50  dstecker
+ *       CBP4 candidate frequency implimentation
+ *       Revision 1.11  2002/06/17 17:36:21  hans
+ *       Incorrect conditional compilation around Mux1CatSigLen enum entry MUX1_CAT2_SIG_LEN and Mux2CatSigLen enum entry MUX1_CAT2_SIG_LEN removed together with the wrong values.
+ *       Revision 1.10  2002/06/13 13:55:36  hans
+ *       Statistics functions already disabled with ifdef removed.
+ *       Revision 1.9  2002/06/06 13:13:27  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.8  2002/06/04 20:06:23  hans
+ *       Old statistics now handled by lmd disabled with ifdef's
+ *       Revision 1.7  2002/03/28 18:24:21  hans
+ *       is2000 rev 0 add 2, retrievable and settable parameters implemented.
+ *       CR503: get retrievable parameter implemented.
+ *       CR508: set retrievable parameter implemented
+ *       Revision 1.6  2001/12/14 17:11:17  mclee
+ *       prototype GetSyncPageCounts()
+ *       Revision 1.5  2001/08/03 15:15:05  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.4  2001/06/21 13:30:26  yfang
+ *       merged code from CBP3 to solve the layer2 message sequence mis-matching
+ *       Revision 1.3  2001/05/29 14:42:42  akayvan
+ *       Added declaration for getPCNPMReceivedstatus() per CR#20.
+ *       Revision 1.2  2001/03/16 11:32:23  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.1  2001/01/17 10:58:58  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/01 10:47:33  chinh
+ *       Modified LAC dsch for IS2000
+ *       Revision 1.3  2000/11/14 01:06:24Z  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.2  2000/11/13 22:01:18Z  hans
+ *       Check-in for cbp4 phase 1 integration
+ *       Revision 1.1.2.4  2000/11/11 01:47:26Z  hans
+ *       SDU length calculation is done to handle message with multiple records
+ *       Revision 1.1.2.3  2000/11/08 00:17:57Z  hans
+ *       PchMessage structure is replaced by FcschMessage structure.
+ *       New IS2000 PD is not recognized by L3 and is therefore masked out from MSG_TYPE before parsed on to L3.
+ *       Revision 1.1.2.2  2000/11/01 02:07:25Z  hans
+ *       New structure fields added to PChMessage structure.
+ *       New Layer 2 (LAC) function prototypes added.
+ *       Revision 1.3.2.2  2000/10/13 02:01:52Z  hans
+ *       CBP4 phase1 LAC implementation
+ *       LAC functionality executed before cpRunTheEngine() function call
+ *       Revision 1.3.2.1  2000/08/23 22:09:16Z  hans
+ *       Duplicate revision
+ *       Revision 1.3  2000/08/23 22:09:16Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:15:06Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.20  2000/03/01 22:37:35  gfrye
+ *       Added "somTime" to PChMessage structure to store the time at
+ *       which the beginning of the message was received.  Broadcast SMS
+ *       needs this time for Broadcast pages to calculate when to expect
+ *       a broadcast message.
+ *
+ *       Revision 1.19  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.18  1999/08/18 23:34:21  gfrye
+ *       Added l2PageMonitorInit prototype to reset the new time stamp based
+ *       Page channel monitoring scheme.
+ *
+ *       Revision 1.17  1999/06/16 00:37:03  scotvold
+ *       Reset Power Control Counters after send PMRM.
+ *
+ *       Revision 1.16  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.15  1999/05/18 02:12:47  mhayduk
+ *       Fixed up comment.
+ *
+ *       Revision 1.14  1998/12/02 00:07:12  scotvold
+ *       Moved statistic counting here from stats.c
+ *
+ *       Revision 1.13  1998/11/20 16:43:38  scotvold
+ *       Fixed T53 ifdef.
+ *
+ *       Revision 1.12  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.11  1998/09/11 02:37:05  scotvold
+ *       Candidate Frequency API changes.
+ *
+ *       Revision 1.10  1998/08/14 23:48:40  scotvold
+ *       Removed numPreamble from Layer 2.
+ *
+ *       Revision 1.9  1998/07/27 17:25:26  scotvold
+ *       Added external control of Power Control processing.
+ *
+ *       Revision 1.8  1998/07/20 23:22:46  scotvold
+ *       Added state machine tracing support.
+ *
+ *       Revision 1.7  1998/07/14 17:23:38  scotvold
+ *       FTC Supervision changes.
+ *
+ *       Revision 1.6  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _LAYER2_H_
+
+  #define _LAYER2_H_ 1
+
+#include "sysapi.h"  
+#include "pswairmsg.h"
+/*****************************************************************************
+ * Function prototypes
+ ****************************************************************************/
+void                l2SyncControl(kal_bool control);
+SyncChannelMessage* l2BuildSyncMessage(SyncFrame *frame);
+
+void        l2PageControl(kal_bool control);
+FcschMessage* l2BuildPageMessage(PageFrame *frame);
+
+kal_bool l2OhdMessageDuplicate(FcschMessage *msg);
+kal_bool chechForOVHMsg(kal_uint8 msgType);
+
+kal_bool sduOffset(FcschMessage *fcschMsg, kal_uint16 *index);
+kal_bool sduLength(FcschMessage *fcschMsg, kal_uint16 *index);
+kal_bool getExtMsgLengthInd(kal_uint8 ChanType);
+
+
+void  l2PageMonitorInit(void);
+
+/* Traffic Channel Interface */
+void  l2FTCStart (void);
+void  l2FTCStop (void);
+FTCMessage*  l2FTCFrame(TCFrame* frame);
+void  l2FTCHardHandoff (void);
+void  l2FTCHardHandoffWReturnOnFailure(void);
+void  l2FTCSupervision (kal_bool control);
+void  l2FTCSupervisionFadeTimeout (void);
+void  l2FTCPowerControlInit (void);
+void  l2FTCPowerControlCounterReset (void);
+void  l2FTCPowerControl (kal_bool control);
+void  l2FTCPowerControlParm(kal_uint8 pwrRepThresh, kal_uint8 pwrRepFrames,
+                 kal_bool pwrThreshEnable, kal_bool pwrPeriodEnable, kal_uint8 pwrRepDelay);
+PCNPMData* getL2FTCPowerControlParms(void);
+kal_bool*      getPCNPMReceivedstatus(void);
+void  l2FTCCandFreqSearchParm (kal_int8 sfRxPwrThresh, kal_int8 diffRxPwrThresh);
+kal_int8  l2FTCGetAvgSFRxPwr (void);
+void  l2FTCGetTotalPwr(kal_uint8* sfTotalRxPwr/*, kal_uint8* cfTotalRxPwr*/);
+
+void  l2RxAcknowledgementProceduresReset (void);
+void  l2TCTransmitterControl(TXControl txControl);
+
+void l2GetSyncPageCounts(kal_uint8 *GoodMsgCount, kal_uint8 *BadMsgCount);
+
+kal_uint8 l2totalRxPower (kal_int16 actualRxPwr);
+void l2CpcchPingBs( void );
+void  l2FTCHardHandoffTimerExpired (void);
+L2_STATE  l2GetPageState (void);
+kal_uint8  l2GetPageMessageLength (void);
+kal_uint8  l2GetPageMessageType (void);
+kal_uint32 calcSumOfEcIoActivePilots(void);
+/* Misc */
+extern kal_uint16 cpCommonFieldWidth(void);
+void l2ResetGoodPageMessageRcvd(void);
+kal_bool l2GoodPageMessageReceived(void);
+void l2Set1xAdvForFchBlankingParms(kal_uint8 rcpmN2mInd, kal_uint8 rpcmDutyCycleIdx, SysActionTimeT actionTime);
+kal_bool l2ExtractRecordsAndMsgTypeFromGEM (kal_uint8* buf, kal_uint16 *index, kal_uint8 *msgType);
+#ifdef MTK_CBP
+kal_bool l2PchChanIsGood(void);
+void l2ResetPchHalfFrames(void);
+#endif
+void PswOTAMsgDhlPeerPrint(kal_uint32 traceid, kal_bool dirFwd, kal_uint8 chanType, kal_uint8 NumByte, kal_uint8* data,kal_uint8 ForChType,kal_uint8 P_REV_IN_USEs);
+
+void resetCrcErrAndMidSciNumInProbes(void);
+void IncCrcErrAndMidSciNumInProbes(void);
+kal_uint32 GetCrcErrAndMidSciNumInProbes(void);
+
+#endif  /* _LAYER2_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_api.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_api.h
new file mode 100644
index 0000000..89770e2
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_api.h
@@ -0,0 +1,226 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_api.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *			   in loc_api.c
+ *
+ ****************************************************************
+ *          	PVCS Header Information
+ *
+ *    $Revision: 1.3 $
+ *    $Author: wavis $
+ *
+ *    $Log: loc_api.h $
+ *
+ *    08 09 2017 johnny.ding
+ *    [MOLY00257917] [MT6763][Umolya Trunk]merge code to Umolya Trunk
+ *    	
+ *    	merge code to Umolya trunk.
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *
+ *    05 10 2017 johnny.ding
+ *    [MOLY00247455] [6293][C2K][PS]Change KAL timer API to event scheduler API
+ *    	
+ *    	change kal timer to event schedule.
+ *    Revision 1.3  2006/01/03 11:54:03  wavis
+ *    Merging in VAL.
+ *    Revision 1.2.1.2  2005/11/07 15:13:16  wavis
+ *    Merging in VAL/FSM.
+ *    Revision 1.2  2004/03/25 12:08:18  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.1  2003/05/12 15:38:16  fpeng
+ *    Initial revision
+ *    Revision 1.4  2002/08/25 20:13:39  amala
+ *    Fixed AFLT CRs 1107, & 1109
+ *    Revision 1.3  2002/08/08 14:52:33  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:56:57  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:55:38  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_API_H
+#define _LOC_API_H   1
+
+#include "bitbash.h"
+
+#include "cptimer.h"
+#include "valapi.h"
+#include "pswapi.h"
+#include "hlpapi.h"
+#include "loc_pars.h"
+#include "loclist.h"
+#include "locsmc.h"
+#include "loctimer.h"
+#include "loclistmgr.h"
+
+/* Defines */
+
+/* Structures */
+
+/* Prototypes */
+
+void LocIS801SessionStartMsg(PswIs801SessionStartMsgT *MsgDataPtr);
+void LocSendMsgReq(SessionType *Sess, kal_uint8 *data, kal_uint16 len);
+void LocIS801TCPBFwdDataRespInfoMsg(PswIs801TcpbFwdDataRespInfoMsgT* MsgDataPtr);
+void LocIS801TCPBRevDataRespInfoMsg(void);
+void LocPosRejectMsg(PswPosRejectMsgT *MsgDataPtr);
+void LocAfltMeasurementsMsg(PswPosAfltMeasurementMsgT *MsgDataPtr);
+void LocAfltAckAbortMsg(PswPosAfltAckAbortMsgT *MsgDataPtr);
+void LocAfltAbortReqMsg(PswPosAfltAbortReqMsgT *MsgDataPtr);
+void LocOrigCancel(PswIs801SessCancelReqMsgT *MsgDataPtr);
+void LocPdeAbort(void);
+void LocPdePRMRsp(PswPseudorangeMsmtRspMsgT *MsgP);
+void LocPdeSessionEndRsp(void);
+void LocPdeInopMsg(void);
+
+void LocRcvMsgInd(kal_uint8 *data, kal_uint16 length);
+void LocMsgConfirmInd(kal_bool success);
+void LocDisconnectInd(void);
+void LocConnectInd(void);
+void LocE911(kal_bool mode);
+void LocOutReqTimeOut(SessionType *Sess);
+void LocDiscardSession(SessionType *Sess, SessionStatusE Status);
+void LocPPMFixTimer(kal_uint32 Id);
+void LocPPMPrefQualTimer(kal_uint32 PPMId);
+void LocPRMFixTimer(kal_uint32 Id);
+void LocSessFixTimer(kal_uint32 Id);
+void LocAcqAsstFresh(void);
+void LocBSAlmFresh(void);
+kal_bool LocTCPsendOK(void);
+void LocApiInit(void);
+kal_bool LocAGPSCapable(void);
+kal_bool LocMSOrigCapable(void);
+kal_bool LocAFLTCapable(void);
+kal_uint8 LocAGpsSessId(void);
+void LocErrorToVal(ValLocErrorTypes Reason);
+SessionType* LocGetSessionPtr(kal_uint8 SessId);
+void LocSetPrivacyMode( kal_bool mode );
+kal_bool LocGetPrivacyMode( void );
+void LocGpsDebugInfoMsg(PswGpsDebugInfoCmdMsgT *MsgP);
+void LocEtsTestCmd(PswLocStateChangedMsgT* MsgP);
+ void LocSendAfltMsgMsgRst(PswPosAfltMeasurementMsgT *MsgDataPtr, SessionType *Sess);
+ void LocSendLecPrmMsg(SessionType *Sess,PswPseudorangeMsmtRspMsgT *MsgP);
+ void LocSendOutPktData(SessionType *Sess);
+#ifdef MTK_DEV_GPSONE_ON_LTE
+kal_bool LocSend2ValTcpConnReq(SessionType *Sess);
+#else
+kal_bool LocSend2ValTcpConnReq(void);
+#endif
+void LocSetAGpsState(SessionType *Sess, kal_uint8 event, void *msgBuffer);
+kal_bool LocSend2ValTcpCloseReqMsg(void) ;
+void LocSend2ValSessDoneMsg(SessionType *Sess, SessionStatusE Status, kal_uint8 SessStatus);
+void LocInitAgpsState(SessionType *Sess);
+void LocSendLecLocReqMsg(SessionType *Sess,  kal_bool bCallback);
+void LocSendLecLocEndMsg(SessionType *Sess, kal_bool Flag);
+kal_bool LocLecSendOK(void);
+void LocSessDone(SessionType *Sess, SessionStatusE Status);
+kal_bool LocSMSsendOK(void);
+void LocEphAlmSysRestore(PswIs801EphAlmSystimeMsgT* MsgDataPtr);
+void LocLecLocRsp(PswLocRspDataT * MsgDataPtr);
+void LocLecGpsReady(void);
+kal_bool LocL1dSendOK(void);
+kal_bool LocLecSendOK(void);
+kal_bool LocSMSsendOK(void);
+void LocResetAssis(PswGpsResetAssistMsgT* MsgDataPtr);
+void LocuserMode(void);
+void LocltsMode(void);
+void LoctestMode(void);
+void LocNmeaStream(PswGpsNmeaStreamMsgT* MsgDataPtr);
+void LocMssDone(PswIs801MssDoneMsgT* MsgDataPtr);
+void LocStartModeSet(PswLocStartModeSetMsgT* MsgDataPtr);
+void LocFixModeGet(PswValLocFixModeGetMsgT * MsgDataPtr);
+void LocLecStartModeSet(kal_uint8 LECRestartMode);
+void LocLecPendStartModeSet(kal_uint8 LECRestartMode);
+kal_bool LocLecStartModeMsgPending(void);
+void LocClearOutputInfo(SessionType* sess);
+void LocSendHscAlternateAfcMsg(kal_uint8 Enable);
+void LocFullTimeGet(void);
+void LocRestartMss(PswValRestartMsgT* MsgDataPtr);
+void LocEnterLecReadyState(void);
+void LocSetHlpInactivityTimer(kal_uint32 Interval);
+void Loc1xNetworkAvailInd(void);
+kal_bool LocSendUpdatedAfltPilotSet(kal_uint32 Id);
+void LocLecFrameSysncDone(void);
+void LocCdmaSystemReq(void);
+void LocNmeaOutputSet(kal_bool enable);
+void LocAssistReqMsg(PswAssistReqT* MsgDataPtr);
+void LocPrefRespQualTimer(kal_uint8 Id);
+void LocTcpConnStatus(kal_bool success);
+void LocOutReqTimerMsg(kal_uint8 Id);
+void LocCdmaSystemReadyReq(void);
+void LocMpcConnStatusMsg(PswIs801MpcConnStatusMsgT* MsgDataPtr);
+void Loc60SecTimerMsg(void);
+kal_bool LocSendSessEnd2Pde(SessionType *Sess);
+void LocCdmaSysUnavail(kal_uint16 SessId);
+void LocSendLecSysReadyMsg(kal_bool bReady);
+void LocHandleSysReadyReq(SessionType *Sess);
+kal_uint8 LocEndSess(SessionType* sess);
+void LocPreemptionTimerExp(void);
+void LocCustIdSet(kal_uint8 Id);
+kal_uint8 LocCustIdGet(void);
+#ifdef MTK_CBP
+void LocSetSysParaInfo(SysCdmaBandT band_class,
+                            kal_uint16 cdma_freq,
+                            kal_uint16 pilot_pn,
+                            kal_uint16 sid,
+                            kal_uint16 nid,
+                            kal_uint16 base_id,
+                            kal_uint32 base_lat,
+                            kal_uint32 base_long);
+void LocSetMsRefTime(SysCdmaBandT band, kal_uint16 channel, kal_uint16 pilot_pn);
+#endif
+void LocIs801FlowMsg(LocSrvTraceIds traceId, kal_uint16 msgType);
+
+#endif /* _LOC_API_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_request.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_request.h
new file mode 100644
index 0000000..3321db3
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_request.h
@@ -0,0 +1,105 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_bs_request.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *			   in loc_bs_request.c
+ *
+ ****************************************************************
+ *          	PVCS Header Information
+ *
+ *    $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *    $Log: loc_bs_request.h $
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *
+ *    07 04 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    ::KAL type - L3, folder ps
+ *    Revision 1.2  2004/03/25 12:08:19  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.1  2003/05/12 15:38:17  fpeng
+ *    Initial revision
+ *    Revision 1.4  2002/10/25 16:08:55  amala
+ *    In struct PRM_PDE_STRUCT, added field: kal_bool  MobOffsetIncl,
+ *    for CR 1108 fix, AGPS MS System Time Offset correction.
+ *    Revision 1.3  2002/08/08 14:52:50  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:57:11  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:56:19  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_BS_REQUEST_H
+#define _LOC_BS_REQUEST_H   1
+
+#include "loc_pars.h"
+
+/* Prototypes */
+void BSReqMSInfo(kal_uint8 *data, kal_uint16 startBit, SessionType *sess);
+kal_bool BSReqPilotPhaseMeas(kal_uint8 *data, kal_uint16 startBit, SessionType *sess);
+kal_bool BSReqPseudoRMeas(kal_uint8 *data, kal_uint16 startBit, kal_uint8 Len, SessionType *sess);
+void BSReqCancel(kal_uint8 *data, kal_uint16 startBit, SessionType *sess);
+void PPMPrefQualTimeout(kal_uint8 PPMId);
+kal_uint8 AssignPPMId(SessionType *Sess);
+kal_bool startPrefRespQualTimer(kal_uint8 PPMid, kal_uint8 PrefRespQual);
+void stopPrefRespQualTimer(kal_uint8 PPMid);
+void SendAfltPilotSet(SessionType *Sess);
+void SendPDEPRMReq(SessionType *Sess);
+kal_bool PPMpendCheck(kal_uint8 SessId);
+kal_bool PRMpendCheck(kal_uint8 SessId);
+kal_bool LecPowerOnReq(SessionType *Sess, kal_bool bPrmReqInc);
+kal_bool LocSendPpMReq(SessionType *Sess);
+void ResetPPMId(kal_uint8 i);
+#endif /* _LOC_BS_REQUEST */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_response.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_response.h
new file mode 100644
index 0000000..f136a7a
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_bs_response.h
@@ -0,0 +1,107 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_bs_response.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *			   in loc_bs_response.c
+ *
+ ****************************************************************
+ *          	PVCS Header Information
+ *
+ *    $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *    $Log: loc_bs_response.h $
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *    Revision 1.2  2004/03/25 12:08:19  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.1  2003/05/12 15:38:17  fpeng
+ *    Initial revision
+ *    Revision 1.4  2002/08/25 20:13:55  amala
+ *    Fixed AFLT CRs 1107, & 1109
+ *    Revision 1.3  2002/08/08 14:53:04  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:57:23  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:56:55  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_BS_RESPONSE_H
+#define _LOC_BS_RESPONSE_H   1
+
+#include "loc_pars.h"
+
+#define  ALM_FLAG  0x01
+#define  EPH_FLAG  0x02
+
+/* Prototypes */
+void BSProvInfo(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void BSReject(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void BSAlmanac(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void GPSAcqAssist(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_uint8 Len, kal_bool UnSol);
+void GPSLocAssist_sCoord(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void GPSLocAssist_cCoord(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void GPSSensAssist(kal_uint8 *data, kal_uint16 startBit, SessionType *sessd, kal_uint8 Len, kal_bool UnSol);
+void GPSAlmanac(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol, kal_uint16 len);
+void GPSEphemeris(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol, kal_uint16 len);
+void GPSNavMsgBits(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void BSLoc(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol, kal_uint16 len);
+void GPSAlmanacCorr(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+void GPSSatHealthInfo(kal_uint8 *data, kal_uint16 startBit, SessionType *sess, kal_bool UnSol);
+kal_bool ManualBSAlmanac(SessionType *sess);
+void LocGpsBased801TDataSend(kal_uint8 *data, kal_uint16 len, kal_uint32 msgId);
+kal_bool ManualBSAlmanac(SessionType *sess);
+void LocResetEphAlmData(kal_uint8 flag);
+void LocAlmEhpUpdateState(void);
+void LocSendAlmEhpUpdateMsg(void);
+#endif /* _LOC_BS_RESPONSE_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_request.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_request.h
new file mode 100644
index 0000000..199b86a
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_request.h
@@ -0,0 +1,99 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_ms_request.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *			   in loc_ms_request.c
+ *
+ ****************************************************************
+ *          	PVCS Header Information
+ *
+ *    $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *    $Log: loc_ms_request.h $
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *    Revision 1.2  2004/03/25 12:08:20  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.1  2003/05/12 15:38:18  fpeng
+ *    Initial revision
+ *    Revision 1.3  2002/08/08 14:53:15  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:57:31  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:57:48  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_MS_REQUEST_H
+#define _LOC_MS_REQUEST_H   1
+
+
+/* Prototypes */
+void MSLocRespReq(SessionType *Sess, kal_bool H_Req, kal_bool C_Req, kal_bool V_Req);
+void MSBSCapReq(SessionType *Sess);
+void MSBSAlmaReq(SessionType *Sess, kal_bool ExtAlm);
+void MSAcqAssistReq(SessionType *Sess, kal_bool Dopp, kal_bool AddDopp, kal_bool CodePhParm, kal_bool AzEl);
+void MSSensAssistReq(SessionType *Sess);
+void putResv4Bits(void);
+void LocSendMSLocRespReq(SessionType *Sess, kal_bool H_Req, kal_bool C_Req, kal_bool V_Req);
+void LocSendMSBSCapReq(SessionType *Sess);
+void LocSendMSBSAlmaReq(SessionType *Sess, kal_bool ExtAlm);
+void LocSendMSAcqAssistReq(SessionType *Sess, kal_bool Dopp, kal_bool AddDopp, kal_bool CodePhParm, kal_bool AzEl);
+void LocSendMSSensAssistReq(SessionType *Sess);
+void LocSendMSGPSEphReq(SessionType *Sess, kal_bool AB_PAR_REQ);
+void MSSendGpsEphReq(SessionType *Sess);
+void MSSendGpsAlmReq(SessionType *Sess);
+
+void LocSendMSGPSAlmReq(SessionType *Sess);
+
+#endif /* _LOC_MS_REQUEST_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_response.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_response.h
new file mode 100644
index 0000000..7bad02f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_ms_response.h
@@ -0,0 +1,117 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_ms_response.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *			   in loc_ms_response.c
+ *
+ ****************************************************************
+ *          	PVCS Header Information
+ *
+ *    $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *    $Log: loc_ms_response.h $
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *
+ *    07 04 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    ::KAL type - L3, folder ps
+ *    Revision 1.2  2004/03/25 12:08:20  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.1  2003/05/12 15:38:18  fpeng
+ *    Initial revision
+ *    Revision 1.6  2002/10/29 10:54:10  mclee
+ *    Sess End Modification
+ *    Revision 1.5  2002/10/25 16:09:16  amala
+ *    In function, MSProvPilotPhaseMeas, changed TimeRefMS type from kal_int32 to kal_uint16, for fixing error in AFLT MS Time Reference calculation.
+ *    Revision 1.4  2002/10/07 16:06:26  mclee
+ *    Change struct AFLTPilotMeas to include PNphase.  Change kal_uint16 RmsErrPhase to kal_int16
+ *    Revision 1.3  2002/08/08 14:53:25  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:57:40  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:58:30  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_MS_RESPONSE_H
+#define _LOC_MS_RESPONSE_H   1
+
+#include "loc_pars.h"
+
+/* Prototypes */
+void MSProvInfo(SessionType *sess, kal_bool UnSol);
+void MSProvPilotPhaseMeas(SessionType *Sess, kal_uint16 TimeRefMS, kal_int16 MobOffset, kal_uint16 RefPN, \
+				          kal_uint16 RefPilotStr, kal_uint8 NumPilots, AFLTPilotMeas *ppm, kal_bool UnSol); 
+void MSProvPseudorangeMeas(SessionType *Sess, kal_uint8 Len, kal_uint8 *Data, kal_bool UnSol);
+void MSProvCancelAck(SessionType *Sess, BS_ReqTypes elem, kal_bool noOutReq, kal_bool UnSol);
+void MSReject(SessionType *Sess, BS_ReqTypes Type, Loc_RejectReason rejReason, kal_bool UnSol);
+void MSLocResp(SessionType *Sess, PswLocRspDataT *LocRspMsg);
+void putResv3Bits(void);
+void LocSendMsProvInfo(SessionType *Sess, kal_bool UnSol);
+void LocSendMSProvCancelAck(SessionType *Sess, BS_ReqTypes elem, kal_bool noOutReq, kal_bool UnSol);
+void LocSendMSReject(SessionType *Sess, BS_ReqTypes Type, Loc_RejectReason rejReason, kal_bool UnSol);
+void LocSendPPMRsp(SessionType *Sess,PswPosAfltMeasurementMsgT *MsgDataPtr);
+void LocSendPRMRsp(SessionType *Sess,PswPseudorangeMsmtRspMsgT *MsgP);
+void LocSendLocResp(SessionType *Sess, void *msgBuffPtr);
+void LocEncodePpmRsp( PswPosAfltMeasurementMsgT *MsgDataPtr );
+#ifdef MTK_CBP
+void MSSysInfo(SessionType *sess, kal_bool UnSol);
+void MSTimeOffset(SessionType *sess, kal_bool UnSol);
+void LocSendMsSysInfo(SessionType *Sess, kal_bool UnSol);
+void LocSendMsTimeOffset(SessionType *Sess, kal_bool UnSol);
+
+#endif
+
+#endif /* _LOC_MS_RESPONSE_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loc_pars.h b/mcu/interface/protocol/as_c2k/1xrtt/loc_pars.h
new file mode 100644
index 0000000..3c3e929
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loc_pars.h
@@ -0,0 +1,562 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module:     loc_pars.h
+ *
+ * Purpose:    File contains all structures and prototypes used
+ *         in loc_pars.c
+ *
+ ****************************************************************
+ *            PVCS Header Information
+ *
+ *    $Revision: 1.2 $
+ *    $Author: fpeng $
+ *
+ *    $Log: loc_pars.h $
+ *
+ *    08 09 2017 johnny.ding
+ *    [MOLY00257917] [MT6763][Umolya Trunk]merge code to Umolya Trunk
+ *    	
+ *    	merge code to Umolya trunk.
+ *
+ *    07 06 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    Correct copyright file header
+ *
+ *    07 04 2017 sue.zhong
+ *    [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *    ::KAL type - L3, folder ps
+ *
+ *    12 01 2016 sue.zhong
+ *    [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ *    Update C2K source
+ *    Revision 1.2  2004/03/25 12:08:21  fpeng
+ *    Updated from 6.0 CP 2.5.0
+ *    Revision 1.2  2003/08/28 10:06:22  bcolford
+ *    Update for merge.
+ *    Revision 1.6  2003/06/27 12:12:27  mclee
+ *    Clean up traces
+ *    Revision 1.5  2002/10/31 18:24:32  amala
+ *    Changed RMS Error Phase parameter type to kal_uint8.
+ *    Revision 1.4  2002/10/07 16:06:47  mclee
+ *    Change struct AFLTPilotMeas to include PNphase.  Change kal_uint16 RmsErrPhase to kal_int16
+ *    Revision 1.3  2002/08/08 14:53:37  mclee
+ *    Added AGPS support & fixed AFLT bugs.
+ *    Revision 1.2  2002/06/06 10:57:49  ameya
+ *    Updated cpoyright information.
+ *    Revision 1.1  2002/04/18 09:59:04  mclee
+ *    Initial revision
+ *    Revision 1.1  2002/03/19 10:58:03  mclee 
+ *
+ ****************************************************************
+ ***************************************************************/
+#ifndef _LOC_PARS_H
+#define _LOC_PARS_H   1
+
+/* Includes */
+#include "pilots.h"
+#include "pswapi.h"
+#include "locsmc.h"
+#include "valapi.h"
+/* Defines */
+/* Currently planning to support Max 3 simultaneous sessions.
+ * If MAX_SESS_SUPPORTED increases more response element timers
+ * will need to be added in cptimers.h
+ */
+#define MAX_SESS_SUPPORTED    4
+#define LOC_PARS_BUFF_SIZE    250
+#define LOC_SEND_BUFF_SIZE    200
+#define MAX_ASSIST_SIZE       250
+
+#define NULL_VALUE            0xffffffff
+
+#define LocOutputFlagReset(Sess) \
+                 Sess->OutSndingInfo.OutsSndingREQ=0;\
+                 Sess->OutSndingInfo.OutsSndingRSP=0; \
+                 Sess->NumReqOutstanding=0;\
+                 Sess->NumRspOutstanding=0;
+
+/* Structures */
+
+typedef enum
+{
+   BS_INIT = 0,
+   MS_ORIG
+} SessSourceType;
+
+typedef struct
+{
+   kal_uint16  RefPN;
+   kal_int16 RefTimeCorr;
+   kal_uint16  NumPilots;
+   AfltPilotSetList afltset;
+} AFLTPilot;
+
+typedef struct
+{
+   kal_uint8   length;
+   kal_uint8   Data[MAX_ASSIST_SIZE];
+} Acq_Assist_Struct;
+
+typedef enum
+{
+   MSA_IMM_AA_SA_FL,
+   MSA_SEQ_AA_SA_FL,
+   MSA_IMM_AA_ONLY_FL,
+   MSA_AFLT_ONLY_FL,
+   NUM_MSA_FLOW
+} MSA_FLOW;
+
+typedef enum
+{
+   MSB_IMM_AA_SA_FL,
+   MSB_IMM_AA_ONLY_FL,
+   MSB_INIT_POS_FL,
+   MSB_EPH_INIT_POS_FL,
+   MSB_EPH_BASED_ON_PPM_FL,
+   MSB_GENERIC_EPH_FL,
+   MSB_EPH_FROM_POS_FL,
+   MSB_ACTIVE_FL,
+   NUM_MSB_FLOW
+} MSB_FLOW;
+
+typedef enum
+{
+   SESSION_START_EV,
+   NEXT_FIX_EV,
+   TCP_CONN_CLOSE_EV,
+   PSW_IS801_TCPB_REV_DATA_RESP_INFO_EV,
+   PSW_IS801_L1d_PPM_RSP_EV,
+   PSW_IS801_LEC_PRM_RSP_EV,
+   GPS_AA_RSP_EV,
+   LOC_OUTREQ_DONE_EV,
+   LOC_RSP_EV,
+   LOC_LEC_LOC_RSP_EV,
+   PPM_REQ_EV=10,
+   PRM_REQ_EV,
+   PRM_TIMER_EXP_EV,
+   PPM_TIMER_EXP_EV,
+   PPM_PREF_QUAL_TIMER_OUT_EV,
+   PRM_ABORT_EV=15,
+   MS_INFO_REQ_EV,
+   BS_REJ_EV,
+   OUT_REQ_TIMER_EXP_EV,
+   MS_CONFIRM_IND_EV,
+   PSW_DISCONN_EV=20,
+   PPM_CANCEL_EV,
+   PRM_CANCEL_EV,
+   LEC_READY_EV,
+   REV_TCP_READY_EV,
+   REV_MS_READY_EV=25,
+   L1d_READY_EV,
+   MSS_DONE,
+   FULL_TIME_GET,
+   TCP_CONN_SUCC_EV,
+   GPS_READY_EV=30,
+   MS_REJ_EV,
+   Cdma_Network_AVAIL_EV,
+   Cdma_System_Req_EV,
+   Assist_Data_Req_EV=34,
+   MPC_Conn_Req_Succ,
+   MPC_Conn_req_Fail,
+
+   DO_PREEMP_READY=40,
+   Cdma_Network_Unavail_EV,
+   AFLT_START,
+   LOC_NUM_EV
+} LOC_EVENT;
+
+typedef enum
+{
+   InstanceId,
+   Sess_Id,
+   Sess_Tag,
+   Num_SessId
+} SESS_IDS;
+
+typedef enum
+{
+   CAP_NOT_SUPP = 0,
+   CAP_TEMP_NOT_SUPP
+} Loc_RejectReason;
+
+typedef struct
+{
+   SESS_IDS Id;
+   kal_uint32   Value;
+} SessParmT;
+
+typedef struct {
+   kal_bool Dopp;
+   kal_bool AddDopp;
+   kal_bool CodePhParm; 
+   kal_bool AzEl;
+} LocAAReqMsgT;
+
+typedef struct { 
+   kal_bool ExtAlm;
+} LocBSAlmaReqMsgT;
+
+typedef struct {
+   kal_uint8 Toa;
+   kal_uint8 NumWeek;
+} LocGpsAlmReqMsgT;
+
+typedef struct {
+   kal_bool AB_PAR_REQ;
+} LocGpsEphReqMsgT;
+
+typedef struct {
+   kal_bool H_Req;
+   kal_bool C_Req;
+   kal_bool V_Req;
+} LocRespReqMsgT;
+
+typedef struct {
+   kal_bool UnSol;
+} LocMsProvInfoMsgT;
+
+#ifdef MTK_CBP
+typedef struct {
+   kal_bool UnSol;
+} LocMsSysInfoMsgT;
+#endif
+
+typedef struct {
+   BS_ReqTypes elem;
+   kal_bool noOutReq;
+   kal_bool UnSol;
+} LocProvCancelAckMsgT;
+
+typedef struct {
+   BS_ReqTypes Type;
+   Loc_RejectReason rejReason;
+   kal_bool UnSol;
+} LocMsRejMsgT;
+
+typedef struct{
+   kal_uint16 OutsSndingREQ;
+   kal_uint16 OutsSndingRSP;
+} LocSessOutputInfo;
+
+typedef struct
+{
+   kal_uint16    PilotPN;
+   kal_int32   PNphase;
+   kal_uint16    Strength;
+   kal_uint8     RmsErrPhase;
+} AFLTPilotMeas;
+
+/* defines */
+#define MAX_PPM_SUPPORTED 2 /* Currently l1d contans only two pilot buffers
+               * to store Pilot Phase Measurement Requests.
+               */
+#define MAX_PRM_SIZE      50
+
+/* Structures */
+typedef struct
+{
+   kal_uint8 NumFixes;
+   kal_uint8 TimeBFixes;
+   kal_uint8 SessID;
+   kal_bool  OffsetReq;
+   kal_uint8 PrefRespQual;
+} PPM_Types;
+
+typedef struct
+{
+   kal_uint8 PrefRespQual;
+   kal_uint8 NumFixes;
+   kal_uint8 TimeBFixes;
+   kal_bool OffsetReq;
+} PRM_Types;
+
+typedef struct
+{
+   kal_uint8 Length;
+   kal_bool  MobOffsetIncl;
+   kal_uint8 Data[MAX_PRM_SIZE];
+} PRM_PDE_STRUCT;
+
+typedef enum
+{
+   AFLT_INIT,
+   AFLT_IDLE,
+   AFLT_ACTIVE,
+   AFLT_DORMANT,
+   AFLT_PEND,
+   AFLT_NOT_SUPPORTED
+} AFLT_STATES;
+
+typedef enum
+{
+   PRM_INIT,
+   PRM_IDLE,
+   PRM_ACTIVE,
+   PRM_DORMANT,
+   PRM_PEND,
+   PRM_NOT_SUPPORTED
+} PRM_STATES;
+
+typedef struct
+{
+   kal_uint8    Index;
+   kal_bool     bUsed;
+   kal_uint32   InstanceId; /*ralated to VAL*/
+   kal_uint8    Sess_Id;
+   kal_bool     Sess_Start;
+   kal_bool     Sess_End;
+   SessSourceType Sess_Source;
+   kal_uint8    Sess_Tag;   /* Session Tag used by the BS PDE */
+
+   kal_uint32    NumFixes;
+   kal_uint32    OrigNumFixes;
+   kal_uint32  TimeBFixes;
+   kal_uint32    HorizontalAccuracy;
+   kal_uint32    VerticalAccuracy;
+#ifdef MTK_CBP
+   kal_uint32   PseudorangeAccuracy;
+   kal_int32    RatMode;
+   kal_bool     OnCTNtwk;
+#endif
+   kal_uint32   Performance;
+
+   kal_uint16   AgpsPendFlag;    
+ 
+   PPM_Types PPMInfo;
+   kal_uint8    PPMId;
+ 
+   AFLT_STATES  AFLTstate;
+   PRM_STATES  PRMstate;
+
+   GPS_FIX_MODE FixMode;
+
+   kal_bool bMssFallback;
+   kal_bool bLecRespRcv;
+ 
+   union {
+      MSA_FLOW Msaflow;
+      MSB_FLOW Msbflow;
+   } AgpsFlow;
+ 
+   union{
+      MSA_STATES Msastate;
+      MSB_STATES Msbstate;
+      MSS_STATES Mssstate;
+      CP_STATES  Cpstate;
+#ifdef MTK_CBP
+      SUPL_MSA_STATE SuplMsaState;
+      SUPL_MSB_STATE SuplMsbState;
+#endif
+    } AGpsState;
+  
+   kal_uint8     NumReqOutstanding;
+   kal_uint16    OutstandingREQ;
+   kal_uint8     NumRspOutstanding; /* Used for trace rsp msg */
+   kal_uint16    OutStandingRsp;
+
+   kal_bool      bTcpConnReq;
+   kal_bool      bOutPutInProcess;
+   kal_bool      bOuputDataReady;
+   kal_bool      bPPMUnsolicited;
+   kal_bool      bPRMUnsolicited;
+ 
+   LocSessOutputInfo OutSndingInfo;
+   kal_uint16    InputStandingRsp;  /* Bit mask for pending response to BS   */
+   kal_uint16    InputCancelledRsp; /* Bit mask for cancelled response to BS */
+
+   AFLTPilot PilotInfo;
+   PRM_Types PRMInfo;
+ 
+   kal_bool      AAInc;
+   Acq_Assist_Struct AcqAssistInfo;
+ 
+   kal_bool      PRMReqInc;
+   PswPosAfltMeasurementMsgT PPMData;
+   PswPseudorangeMsmtRspMsgT PRMData;
+ 
+   LocAAReqMsgT AAReqMsg;
+   LocGpsEphReqMsgT EphReqMsg;
+   LocRespReqMsgT LocRespReqMsg;
+   LocMsProvInfoMsgT MsProvInfoMsg;
+#ifdef MTK_CBP
+   LocMsSysInfoMsgT MsSysInfoMsg;
+#endif
+   LocProvCancelAckMsgT ProvCancelAckMsg;
+   LocMsRejMsgT MsRejMsg;
+   PswLocRspDataT LocRspMsg;
+
+   SessionStatusE Status;
+   kal_bool b1xPreemptionReq;
+   kal_uint8 AgpsSystimeReady; /*0: not ready; 1: success;2: failure.*/
+   ValGpsModeT GpsMode;
+   kal_uint8     flag_gps;    //0--AP, 1--3rd,  2--others
+   kal_uint8     cancel_flag; //0--AP, 1--3rd,  2--others
+   kal_bool unsol_resp_flag[MAX_PROV_GPS_INFO];
+} SessionType;
+
+#define bOutSndingFlag(SessionType)  SessionType->bOutPutInProcess
+#define bOutputDataReady(SessionType)  SessionType->bOuputDataReady
+#define bPrmInProgress(SessionType) ((SessionType->PRMstate!=PRM_INIT)&&(SessionType->PRMstate!=PRM_NOT_SUPPORTED))
+#define bPpmInProgress(SessionType) ((SessionType->AFLTstate!=AFLT_INIT)&&(SessionType->AFLTstate!=AFLT_NOT_SUPPORTED))
+#define bSessionEnd(SessionType) (SessionType->Sess_End)
+#define bAllFixDone(SessionType) (SessionType->NumFixes<=1)
+#define bPpmFixDone(SessionType) (SessionType->PPMInfo.NumFixes==0)
+#define bPrmFixDone(SessionType) (SessionType->PRMInfo.NumFixes==0)
+#define bPpmPrmFixDone(SessionType) (bPpmFixDone(SessionType)&&bPrmFixDone(SessionType))
+#define DecFixNum(SessionType)  (SessionType->NumFixes--)
+#define LocSetOutputDataReady(Sess) (Sess->bOuputDataReady=KAL_TRUE) 
+
+typedef struct
+{
+   kal_uint8    Rsp_Buff[LOC_SEND_BUFF_SIZE];  /* Response Buffer */
+   kal_uint8    Num_Rsp; /* Rsp Buff current number of responses */
+   kal_uint8    Rsp_Len; /* Rsp Buff current length in bytes */
+   kal_uint8    Req_Buff[LOC_SEND_BUFF_SIZE]; /* Request Buffer */
+   kal_uint8    Num_Req; /* Req Buff current number of requests */
+   kal_uint8    Req_Len;   /* Req Buff current length in bytes */
+} OutPDDM;
+
+typedef enum
+{
+  Forward_IS801_msg,
+  Reverse_IS801_msg
+  
+}IS801GpsMessage;
+
+typedef enum
+{ 
+   LOC_GPS_CUST_0,
+   LOC_GPS_CUST_1,
+   LOC_GPS_CUST_ALL  
+}LocGpsCustIDE;
+
+#ifdef MTK_CBP
+typedef struct
+{
+  kal_uint16 time_ref;
+  kal_bool   still_active;
+  SysCdmaBandT  band_class;
+  kal_uint16 cdma_freq;
+  kal_uint16 pilot_pn;
+  kal_uint16 sid;
+  kal_uint16 nid;
+  kal_uint16 base_id;
+  kal_uint32 base_lat;
+  kal_uint32 base_long;  
+}MsSysParaInfo;
+
+typedef struct
+{
+  kal_uint32 time_ref;
+  kal_int16  refPn;
+  kal_uint16 sys_t_offset;
+}TimeOffsetMeas;
+#endif
+
+/* Outstanding Request Masks */
+/* Outstanding Request Masks */
+#define OUT_LOC_REQ       0x0001
+#define OUT_BS_CAP        0x0002
+#define OUT_BS_ALM        0x0004
+#define OUT_GPS_ACQ_ASST  0x0008
+#define OUT_GPS_SENS_ASST 0x0010
+#define OUT_GPS_LOC_ASST  0x0020
+#define OUT_GPS_ALM       0x0040
+#define OUT_GPS_EPH       0x0080
+#define OUT_GPS_NAV_MSG   0x0100
+#define OUT_SAT_HEALTH    0x0200
+
+/* OutStanding Responding Masks */
+#define OUT_MS_PROV_INFO  0x0001
+#define OUT_CANCEL_ACK    0x0002
+#define OUT_REJ_ACK       0x0004
+#define OUT_AFLT_PPM      0x0008
+#define OUT_AGPS_PRM      0x0010
+#define OUT_LOC_RSP       0x0020
+#ifdef MTK_CBP
+#define OUT_MS_SYS_PARA   0x0040
+#define OUT_TIME_OFFSET   0x0080
+#endif
+
+extern PPM_Types PPMInfo[MAX_PPM_SUPPORTED];
+extern PRM_PDE_STRUCT PRMPDEInfo;
+extern kal_bool UpOnTraffic;
+extern OutPDDM PDDM;
+extern kal_bool TcpOnTraffic;
+#ifdef MTK_CBP
+extern MsSysParaInfo MsParaInfo;
+extern TimeOffsetMeas TimeMeas;
+#endif
+/* Prototypes */
+
+void parsAssembleMsg(SessionType *Sess);
+void parsRcvMsg(kal_uint8 *data, kal_uint16 len);
+SessionType* parsSessionHandler(kal_uint8 *SessInfo);
+void parsSaveSessionInfo(kal_uint8 *sessioncontent, SessionType *Sess);
+void parsIncrementNewSessTag(void);
+void parsDecOutStandReq(SessionType *Sess);
+void parsDiscardAll(void);
+void parsResetSess(SessionType *Sess);
+kal_bool LocCscDiscardOUtStanding(void);
+kal_bool parsStartOutReqTimer(kal_uint8 SessId);
+SessionType* parsGetSessId(kal_bool NewSess, kal_uint8 SessTag);
+kal_uint8 *parsGetOutBuf(void);
+kal_bool parsGetMsgPending(void);
+kal_uint8 parsGetPendSession(void);
+void parsSendPendMsg(void);
+void parsSetSessHeader(SessionType *Sess, kal_bool new, kal_bool end);
+void parsDisplaySessInfo(SessionType *Sess);
+void parsClearPDDMBuff(void);
+void parsClearPRM(SessionType *Sess, kal_bool Flag);
+void parsClearPPM(SessionType *Sess);
+void LocInitAgpsState(SessionType *Sess);
+void LocSetAGpsState(SessionType *Sess, kal_uint8 event, void *msgBuffer);
+void ParResetPPM(void);
+void LocStartBtweenFixTimer(SessionType* sess);
+void ParResetPPMParm(SessionType *Sess);
+
+#endif /* _LOC_PARS_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loclist.h b/mcu/interface/protocol/as_c2k/1xrtt/loclist.h
new file mode 100644
index 0000000..ee371a9
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loclist.h
@@ -0,0 +1,118 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2006-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* 
+* FILE NAME   : loclist.h
+*
+* DESCRIPTION :  General purpose linked list routines.
+*
+* HISTORY     :
+*****************************************************************************/
+#ifndef _LOCLIST_H_
+#define _LOCLIST_H_
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+struct _LIST_NODE;
+struct _LIST_STR;
+
+typedef struct _LIST_NODE {
+  struct _LIST_NODE* next;
+  struct _LIST_NODE* prev;
+  void* data;
+}  LIST_NODE;
+
+typedef struct _LIST_STR {
+  LIST_NODE* outHead;
+  LIST_NODE* inTail;
+  LIST_NODE* pNode; /* used to scan the list */
+  struct _LIST_STR* free;
+  kal_uint16 numRecords;
+} LIST_STR;
+
+typedef kal_bool  (*pMATCH_FUNC)(void* testRec, void* listRec);
+#define NULL_NODE (LIST_NODE*)(0)
+#define NULL_LIST (LIST_STR*)(0)
+
+/* define values for where to start when getting from queue */
+#define FROM_HEAD	KAL_TRUE
+#define FROM_TAIL	KAL_FALSE
+
+/* define values for where to start when putting to queue */
+#define TO_HEAD		KAL_TRUE
+#define TO_TAIL 	KAL_FALSE
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+
+kal_uint16 LocNumElements(LIST_STR* list);
+void LocCreateFreeList(LIST_STR* flist, LIST_NODE* nodeRecs, kal_uint16 nRecs);
+void LocCreateEmptyList(LIST_STR* list, LIST_STR* flist);
+void LocCreateFullList(LIST_STR* list, LIST_STR* flist, void* recs, kal_uint16 nRecs, kal_uint16 recSize);
+kal_bool LocPutRecord(LIST_STR* list, kal_bool toHead, void* rec);
+kal_bool LocGetRecord(LIST_STR* list, kal_bool fromHead, void** rec, kal_bool removeFromList);
+kal_bool LocGetFirstMatch(LIST_STR* list, kal_bool fromHead, void** rec, void* testRec,
+              pMATCH_FUNC matcher, kal_bool removeFromList);
+kal_bool LocGetNextMatch(LIST_STR* list, kal_bool fromHead, void** rec, void* testRec,
+              pMATCH_FUNC matcher, kal_bool removeFromList);
+void LocFlushList(LIST_STR* list);
+void LocMoveList(LIST_STR* fromList, LIST_STR* toList);
+
+#endif /* _LOCLIST_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loclistmgr.h b/mcu/interface/protocol/as_c2k/1xrtt/loclistmgr.h
new file mode 100644
index 0000000..46fbb43
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loclistmgr.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) 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2006-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _LOCLISTMGR_H_
+#define _LOCLISTMGR_H_ 1
+/*****************************************************************************
+* 
+* FILE NAME   : loclistmgr.h
+*
+* DESCRIPTION : listmgr Controller interface for the LOC Task
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "loc_pars.h"
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+void LocListInit(void);
+SessionType *LocGetSessCtlBlk(SESS_IDS Id, kal_uint32 Value, kal_bool bRemove);
+SessionType *LocGetFreeSessCtrlBlk(void);
+
+#endif /*_LOCLISTMGR_H_*/
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/locsmc.h b/mcu/interface/protocol/as_c2k/1xrtt/locsmc.h
new file mode 100644
index 0000000..cffd23f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/locsmc.h
@@ -0,0 +1,155 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef LOCSMC_H
+#define LOCSMC_H
+/*****************************************************************************
+* 
+* FILE NAME   : locSmc.h
+*
+* DESCRIPTION :
+*
+*   
+*
+* HISTORY     :
+*
+*   See Log at end of file
+*
+*****************************************************************************/
+
+typedef enum
+{
+   MSA_INIT,
+   MSA_WFR_TCP_CONN,
+   MSA_MS_INFO,
+   MSA_REQ_PPM_AFTER_SYS_PARM_INFO,
+   MSA_GPS_AA,
+   MSA_IMM_AA_SA,
+   MSA_SEQ_AA_SA,
+   MSA_REQ_PRM,
+   MSA_IDLE,
+   MSA_REQ_PPM,
+   MSA_REQ_LOC,
+   MSA_WAIT_1X_WAKEUP,
+   MSA_PREEMPT_TIMER,
+   MSA_WFR_TCP_CLOSING,
+   MSA_WFR_TIME_READY,
+   MSA_NUM_STATE
+} MSA_STATES;
+
+typedef enum
+{
+   MSB_INIT,
+   MSB_WFR_TCP_CONN,
+   MSB_MS_INFO,
+   MSB_REQ_PPM_AFTER_SYS_PARM_INFO,
+   MSB_TIME_GET,
+   MSB_GPS_AA=5,
+   MSB_IMM_AA_SA_ST,
+   MSB_SAT_DATA_REQ,
+   MSB_LOC_RESP_END,
+   MSB_MS_INFO_END,
+   MSB_WAIT_1X_WAKEUP=10,
+   MSB_WFR_ASSIST_REQ,
+   MSB_WFR_MPC_CONN_ST=12,
+   MSB_PREEMPT_TIMER,
+   MSB_PREEMPT_1x,
+   MSB_NUM_STATE
+} MSB_STATES;
+
+typedef enum
+{
+   MSS_INIT,
+   MSS_ACTIVE,
+   MSS_WFR_1X_WAKEUP,
+   MSS_TIME_GET,
+   MSS_NUM_STATE
+}MSS_STATES;
+
+typedef enum
+{
+   CP_INIT,
+   CP_REQ_PPM_MS_INFO,
+   CP_WFR_PPM,
+   CP_REQ_PPM_PRM,
+   CP_GPS_AA,
+   CP_PPM_REQ,
+   CP_PRM_REQ,
+   CP_IDLE_STATE,
+   CP_REQ_LOC,
+   CP_NUM_STATE
+}CP_STATES;
+
+/* define SUPL MSA State */
+typedef enum
+{
+   SUPL_MSA_INIT,
+   SUPL_MSA_MS_INFO,
+   SUPL_MSA_MS_SYS_INFO,
+   SUPL_MSA_PPM,
+   SUPL_MSA_AA,
+   SUPL_MSA_PREEMPT_TIMER,
+   SUPL_MSA_WAIT_1X_WAKEUP,   
+   SUPL_MSA_PRM,
+   SUPL_MSA_REQ_PPM,
+   SUPL_MSA_REQ_LOC,
+   SUPL_MSA_NUM_STATE
+}SUPL_MSA_STATE;
+
+/* define SUPL MSB State */
+typedef enum
+{
+   SUPL_MSB_INIT,   
+   SUPL_MSB_WFR_ASSIST_REQ,
+   SUPL_MSB_MS_INFO,
+   SUPL_MSB_MS_SYS_INFO,
+   SUPL_MSB_REQ_PPM_AFTER_SYS_PARM_INFO,
+   SUPL_MSB_SAT_DATA_REQ,
+   SUPL_MSB_MS_INFO_END,
+   SUPL_MSB_LOC_RESP_END,
+   SUPL_MSB_NUM_STATE
+}SUPL_MSB_STATE;
+
+#endif /*LOCSMC_H*/
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/loctimer.h b/mcu/interface/protocol/as_c2k/1xrtt/loctimer.h
new file mode 100644
index 0000000..1e953f2
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/loctimer.h
@@ -0,0 +1,92 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2006-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _LOCTIMER_H_
+#define _LOCTIMER_H_ 1
+/*****************************************************************************
+* 
+* FILE NAME   : loctimer.h
+*
+* DESCRIPTION : Timer Controller interface for the LOC Task
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+typedef enum
+{
+   LOC_BTWEEN_FIX_TIMER_ID,
+   PPM_BTWEEN_FIX_TIMER_ID,
+   PRM_BTWEEN_FIX_TIMER_ID,
+   PPM_PREF_RESP_QUAL_TIMER_ID,
+   LOC_OUTREQ_TIMER_ID,
+   Loc_Num_Timer_Type
+}Loc_Timer_TypeE;
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+typedef struct {
+   eventid  LocBetweenFixTimer;
+   eventid  PPMBetweenFixTimer;
+   eventid  PRMBetweenFixTimer;
+   eventid  LocOutReqTimer;
+}LocTimerT;
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+void LocStartTimer(kal_uint8 Index, Loc_Timer_TypeE Id, kal_uint32 Interval);
+void LocStopTimer(kal_uint8 Index, Loc_Timer_TypeE Id);
+void LocStartPrefRespQualTimer(kal_uint8 Id, kal_uint32 Interval);
+void LocStopPrefRespQualTimer(kal_uint8 Id);
+void LocTimerInit(void);
+
+#endif /*_LOCTIMER_H_*/
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/longcode.h b/mcu/interface/protocol/as_c2k/1xrtt/longcode.h
new file mode 100644
index 0000000..df86965
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/longcode.h
@@ -0,0 +1,202 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   longcode.h
+ *
+ * Purpose:    Definition of LONGCODE and supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.2 $
+ *   $Modtime$
+ *    $Author: fpeng $
+ *
+ *       $Log: longcode.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:38  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:38:52  fpeng
+ *       Initial revision
+ *       Revision 1.4  2002/06/06 13:13:31  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2001/08/03 15:15:08  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.2  2001/01/29 18:20:53  dstecker
+ *       new access probe architecture
+ *       Revision 1.1  2001/01/17 10:59:00  plabarbe
+ *       Initial revision
+ *       Revision 1.2  2000/11/13 14:26:07  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:19Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:09:18Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.14  1999/08/16 23:47:08  scotvold
+ *       Cleaned up Long Code Transition processing.
+ *       Long Code Transition to Public does not use Ordq.
+ *
+ *       Revision 1.13  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.12  1999/01/26 18:50:30  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.11  1998/11/02 22:07:59  scotvold
+ *       Used ENG_IND_LONG_CODE_CHANGED event instead of action timeout.
+ *
+ *       Revision 1.10  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.9  1998/10/16 17:10:46  scotvold
+ *       Made ftcOrderData global.
+ *
+ *       Revision 1.8  1998/08/18 16:58:53  scotvold
+ *       Added accessor lcGetTCLongCodeState().
+ *
+ *       Revision 1.7  1998/08/17 23:03:36  scotvold
+ *       Added User long code support.
+ *
+ *       Revision 1.6  1998/07/14 18:51:45  scotvold
+ *       Typo correction.
+ *
+ *       Revision 1.5  1998/07/14 17:24:01  scotvold
+ *       Added voice privacy support.
+ *
+ *       Revision 1.4  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+#ifndef _LONGCODE_H_
+
+  #define _LONGCODE_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+
+
+/*****************************************************************************
+ * Longcode structure definition ACH physical channel
+ ****************************************************************************/
+#define CP_LONGCODE_LEN   6
+
+  typedef struct
+  {
+    kal_uint8 mask[CP_LONGCODE_LEN];  /* data space for 42 bits ordered as 0..47 */
+                                 /* where bits 0..41 are used               */
+  } Longcode;
+
+/*****************************************************************************
+ * Longcode structure definition EACH physical channel
+ ****************************************************************************/
+#define EACH_LONG_CODE_MASK_PAR_SIZE   2  /* long code mask size in bytes 	*/
+
+typedef struct
+{
+    kal_uint32      MaskPar [EACH_LONG_CODE_MASK_PAR_SIZE]; /* long code mask parameter */
+} EACHlongCodeMaskParT;
+
+
+typedef enum
+{
+   PLCM_ESN          = 0,
+   PLCM_BS           = 1,
+   PLCM_IMSI_M       = 2,
+   PLCM_IMSI_T       = 3,
+   PLCM_MEID         = 4
+} PlcmTypeT;
+
+/*****************************************************************************
+ * Longcode interface prototypes
+ ****************************************************************************/
+  void copyLongCodeState(Longcode *toMask,kal_uint8 *fromMask);
+
+  void setBCCHLongCode(Longcode *pBcchLcode,kal_uint8 bcch,kal_uint16 pilotPN);
+  void setFCCCHLongCode(Longcode *pFccchLcode);
+
+  void setPCHLongCode(Longcode *pchLcode,kal_uint8 pageCh,kal_uint16 pilotPN);
+  void setACHLongCode(Longcode *pchLcode,kal_uint8 acn,kal_uint8 pcn,kal_uint16 base,
+                   kal_uint16 pilotPN);
+
+  void lcPermuteESN (kal_uint32 esn);
+  void lcTCLongCodeInitialization (void);
+  void lcTransitionRequestAck (void);
+  kal_bool lcGetTCLongCodeState (void);
+  kal_bool lcLongCodeTransitionInProgress (void);
+  void lcGetTCPublicLongCodeMask (Longcode* longcode);
+  void lcGetTCPrivateLongCodeMask (Longcode* longcode);
+  void lcMSLongCodeTransitionRequest (kal_uint8 lcRequest);
+  void lcBSLongCodeTransitionRequest (void);
+  void lcLongCodeTransitionComplete (void);
+
+  void lcSetLongCodeState(kal_bool state);
+
+  kal_uint32 lcMeidToPseudoESN(kal_uint8 *MEID);
+  void   lcSetLongCodeMaskType(PlcmTypeT type);
+  void   lcSetLongCodeMask(kal_uint8 *plcm39);
+  kal_bool   lcIsPLCMTypeChanged(PlcmTypeT type);
+  kal_bool   lcIsPLCMChanged(kal_uint8 *plcm39);
+  void   lcSavePLCMParams(void);
+  void   lcRestorePLCMParams(void);
+
+#endif  /*_LONGCODE_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/namdata.h b/mcu/interface/protocol/as_c2k/1xrtt/namdata.h
new file mode 100644
index 0000000..9d722b5
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/namdata.h
@@ -0,0 +1,191 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:    namdata.h
+ *
+ * Purpose:   Definitions and prototypes for IS-95 NAM data parameters
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *
+ *  $Log: namdata.h $
+ *
+ *  08 24 2017 sue.zhong
+ *  [MOLY00273584] [6293][C2K]Remove un-used C source file in makefile to save compile time.
+ *
+ *  07 06 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  Correct copyright file header
+ *  Revision 1.3  2005/03/18 10:24:53  bcolford
+ *  CBP4.05 [4.21] to CBP6.1 [2.9.0] CP Software Merge.
+ *  Revision 1.2  2004/08/13 10:04:18  agontar
+ *  Removed T53 flag; cleaned up logs
+ *  Revision 1.2  2004/03/25 12:09:38  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.1  2003/05/12 15:38:55  fpeng
+ *  Initial revision
+ *  Revision 1.10  2002/09/30 15:17:46  mshaver
+ *  Changed NamData typedef to be of PswIs95NamT type as this
+ *  is now is the single NAM data structure type.
+ *  Revision 1.9  2002/07/31 17:12:13  hans
+ *  ENG_PREF_BAND_4 (cr726) added as sys option to NAM preferred band selection.
+ *  Revision 1.8  2002/06/06 13:13:47  chinh
+ *  Changed and Added Copyright
+ *  Revision 1.7  2002/02/06 11:43:23  mclee
+ *  Removed prototypes to deleted files.
+ *  Revision 1.6  2001/11/20 12:32:28  mclee
+ *  Move IS95Nam struct and add prototype namGetNam
+ *  Revision 1.5  2001/11/08 12:20:33  AMALA
+ *  Deleted compiler switch SYS_SEL_1_CBP3_MERGE &
+ *  associated non-compiled code.
+ *  Revision 1.4  2001/10/08 14:47:02  mclee
+ *  comment out NamNumber, move definition to sysdefs.h
+ *  Revision 1.3  2001/09/17 14:11:41  AMALA
+ *  CBP3 System Selection port
+ *  Revision 1.2  2001/05/09 09:45:03  cmastro
+ *  changes to compile MMI-integration
+ *  Revision 1.1  2001/01/17 10:59:05  plabarbe
+ *  Initial revision
+ *  Revision 1.1  2000/10/24 14:11:21  fpeng
+ *  Initial revision
+ *  Revision 1.6  2000/09/23 02:39:28Z  rnookala
+ *  added spc and nam_lock to structure IS95Nam
+ *  Revision 1.5  2000/08/31 23:41:56Z  bcolford
+ *  Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *  Revision 1.4  2000/08/23 22:21:27Z  rnookala
+ *  Isotel release 2.8  Added checksum field to NAM
+ *  Revision 1.3  2000/03/01 18:15:19Z  rsattari
+ *  Isotel release 2.3 updates.
+ *  Revision 1.16  1999/12/09 23:06:28  gfrye
+ *  Added CDMA Primary and Secondary Channel definitions to the NAM so
+ *  that they can be modified by different customers.
+ *
+ *  Revision 1.15  1999/08/05 01:11:23  scotvold
+ *  Moved CP_BCAST_ADDRESS_MAX_SIZE to custom.h.
+ *
+ *  Revision 1.14  1999/01/20 19:08:07  mhayduk
+ *  Added broadcast address.
+ *
+ *  Revision 1.13  1998/12/30 18:59:49  mhayduk
+ *  Moved analog parameters inside SYS_OPTION_AMPS.
+ *
+ *  Revision 1.12  1998/11/24 05:40:36  mhayduk
+ *  Cleaned up definitions for checking of TMSI Zone length -
+ *  max zone size is 8.
+ *
+ *  Revision 1.11  1998/10/28 01:26:55  guterman
+ *  Changed SCMp tp SCMP[0] for AMPS macros
+ *
+ *  Revision 1.10  1998/10/20 23:58:23  mhayduk
+ *  Added T53 support.
+ *
+ *  Revision 1.9  1998/09/22 18:44:57  tdaly
+ *  Added IS-95 analog mode support.
+ *
+ *  Revision 1.8  1998/06/08 21:48:25  scotvold
+ *  Updated for Release 0.06.
+ *
+ * Revision 1.7  1998/05/29  20:34:49  mhayduk
+ * Fixed SCM mask.
+ *
+ * Revision 1.6  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.5  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+ 
+
+#ifndef _NAMDATA_H_
+
+  #define _NAMDATA_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pswnam.h"
+/*****************************************************************************
+ * Definitions for use with NAM
+ ****************************************************************************/
+
+  /* Slotted mode bit mask in SCM */
+  #define CP_SLOTTED_MODE_BIT_MASK 0x20 
+
+  /* MEID Support indication bit mask in SCM */  
+  #define CP_MEID_SUPPORT_INDICATOR_BIT_MASK 0x10
+
+  /* Fields for Station Class Mark (SCMp) -- RS-553 Section 2.3.3 */
+  #define SCM_Band(x)   ((x) & 0x08)      /* SCMp Mask -- Bandwidth       */
+  #define SCM_Trans(x)  ((x) & 0x04)      /* SCMp Mask -- Transmission    */
+  #define SCM_PClass(x) ((x) & 0x03)      /* SCMp Mask -- Power Class     */
+
+  #define SCM_20MHz   (0 << 3)            /* 20MHz Bandwidth */
+  #define SCM_25MHz   (1 << 3)            /* 25MHz Bandwidth */
+
+  #define SCM_NODTX   (0 << 2)            /* DTX capability disabled */
+  #define SCM_DTX     (1 << 2)            /* DTX capability enabled  */
+
+  #define PCLASS1     0                   /* Power Class I   -- High    */
+  #define PCLASS2     1                   /* Power Class II  -- Medium  */
+  #define PCLASS3     2                   /* Power Class III -- Low     */
+  #define NO_PCLASS   3                   /* Power Class Reserved (bad) */
+
+  /* Macros */
+  #define IS_DTX_ENABLED(x)  ( (SCM_Trans(x.SCMp[0]) == SCM_DTX) && ((x).DTXp) )
+
+#endif  /* _NAMDATA_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_api.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_api.h
new file mode 100644
index 0000000..76663d2
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_api.h
@@ -0,0 +1,383 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_api.h
+ * Project:            OTASP
+ * Original Author:  Dan Doucette
+ * Creation Date:    Sept 2, 1999
+ *
+ * Description:        Declaration of all of the OTASP callin functions
+ *                   for all interfaces: UI, DLI, WBIOS
+ *
+ * Restrictions: 
+ *
+ * Dependencies:       
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ * $Log: ota_api.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 06 01 2017 qiming.li
+ * [MOLY00246713] [UMOLYA]CSS UT
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.4  2006/03/10 15:42:01  winston
+ * Fix CR7319: Verizon OTA implementation and bug fixes
+ * Revision 1.3  2005/03/18 13:52:08  blee
+ * 4.05 Merge
+ * Revision 1.2  2004/03/25 12:08:05  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:20  fpeng
+ * Initial revision
+ * Revision 1.4  2002/10/29 10:54:39  mclee
+ * Ignore AKEY PREV modification
+ * Revision 1.3  2002/06/06 11:11:13  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:00  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.5  2001/07/17 15:52:02  mclee
+ * Increased Length parameter in PswIOTA messages to kal_uint16.
+ * Revision 1.4  2001/04/03 10:04:32  mclee
+ * Added prototype for otaWbiosSSPRRes defined in ota_api.c
+ * Revision 1.3  2000/10/02 18:39:22Z  bsharma
+ * Added a Global to test if we are in a OTASP call
+ * Revision 1.2  2000/09/29 02:30:16Z  bsharma
+ * Added prototype for OtaWritePrlToNvramAck() to write PRL to flash
+ * Revision 1.1  2000/08/23 18:53:45Z  hhong
+ * Initial revision
+ * Revision 1.12  2000/01/26 23:34:15  ddoucett
+ * added release reason to DisconnectInd
+ *
+ * Revision 1.11  2000/01/25 22:54:05  ddoucett
+ * removed Ssd update functions
+ *
+ * Revision 1.10  2000/01/20 21:46:31  ddoucett
+ * removed ssda and ssdb update functions
+ *
+ * Revision 1.9  2000/01/12 02:02:22  ddoucett
+ * changed to be consistent with api document
+ *
+ * Revision 1.8  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.7  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.6  1999/11/29 20:55:27  ddoucett
+ * changed api adding disconnectInd and removine InSvcInd
+ *
+ * Revision 1.5  1999/11/25 19:53:35  ddoucett
+ * added ssda and ssdb update procedures
+ *
+ * Revision 1.4  1999/11/23 17:07:49  ddoucett
+ * changed origReq
+ *
+ * Revision 1.3  1999/11/12 20:30:22  ddoucett
+ * fixed define
+ *
+ * Revision 1.2  1999/11/03 00:24:45  ddoucett
+ * added callin for ssd updating
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_API_H
+#define _OTA_API_H   1
+#include "uimapi.h"
+
+
+typedef enum
+{
+    PSW_UIM_NOTIFY,
+    PSW_WHAT_CHANGED,
+    PSW_NOUIM_INIT,
+    PSW_ILLEG_UPDATE,
+    PSW_UIM_UPDATE,
+    PSW_UIM_RESPONSE,
+    PSW_UIM_GETPRL,
+    PSW_UIM_PRL_RESPONSE,
+    PSW_UIM_STORE_ESN,
+    PSW_UIM_INIT,
+    PSW_UIM_UIMNAMREAD,
+    PSW_NAM_CH_BY_ETS,
+    PSW_NAM_DATA_READ,
+    PSW_NAM_DATA_WRITE,
+    PSW_NAM_DATA_REQ,
+    PSW_UIM_DATA_REQ,
+    CSS_UIM_NOTIFY,
+    CSS_UIM_INIT,
+    CSS_UIM_UIMNAMREAD,
+    PSW_UIM_ESN_STORE,
+    PSW_UIM_OTA_SEC_API_RESPONSE,
+    PSW_UIM_OTA_PARS_RELEASE,
+    PSW_UIM_OTA_PARS_IN_SVC,
+    PSW_UIM_OTA_PARS_IN_SVC_WAIT,
+    PSW_UIM_OTA_PARS_CONFIRM,
+    PSW_UIM_OTA_PARS_RCV_OUST,
+    PSW_UIM_OTA_PARS_UIM_RESPONSE
+} UimFunction;
+
+/*
+ *
+ *    User Interface Functions
+ *
+ */
+
+/*
+ *    Name:          otaWbiosInitialize
+ *
+ *    Description:   Initialize the OTASP PE 
+ *
+ *    Parameters:    (none)
+ *
+ *    Returns:       (none)
+ *
+ */
+void otaWbiosInitialize(void);
+
+/*
+ *    Name:          otaWbiosOrigInd
+ *
+ *    Description:   Indicates the service configuration controller
+ *                   has received an otasp origination request from the user
+ *
+ *    Parameters:    digits - pointer to ascii digits 
+ *                   numDigits -  actual number of digits in array
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosOrigInd(kal_uint8 *digits, kal_uint8 num);
+
+/*
+ *    Name:          otaWbiosConnectInd
+ *
+ *    Description:   Indication the previously given origination 
+ *                   request has been received and accepted
+ *
+ *    Parameters:    None
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosConnectInd(void);
+
+/*
+ *    Name:          otaWbiosDisconnectInd
+ *
+ *    Description:   Indication the OTASP service option has been 
+ *                   disconnected
+ *
+ *    Parameters:    kal_uint8 reason : Reason for Disconnect
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosDisconnectInd(kal_uint8 reason);
+
+
+/*
+ *    Name:          otaWbiosReleaseReq
+ *
+ *    Description:   Stop the OTASP session. If there is no OTASP session
+ *                     in progress, nothing will happen,
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosReleaseReq(void);
+
+/*
+ *    Name:          otaWbiosMsgConfirmInd
+ *
+ *    Description:   Indicate the success/failure of the last message sent
+ *                   with wbiosOtaSendMsg().
+ *
+ *    Parameters:    success - KAL_TRUE if message was received by base and KAL_FALSE
+ *                     otherwise (e.g. timeout)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosMsgConfirmInd(kal_bool success);
+
+/*
+ *    Name:          otaWbiosRcvMsgInd
+ *
+ *    Description:   Indicate the arrival of an OTASP message from the base
+ *
+ *    Parameters:    data - pointer to octets of OTASP message
+ *                   len - # of octets in message
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosRcvMsgInd(kal_uint8 *data, kal_uint8 len);
+
+
+
+/*
+ * 
+ *    wbios call in functions for calculating MS_RESULT and 
+ *    A_KEY
+ *    
+ */
+
+/*
+ *    Name:          otaWbiosMS_RESULTInd
+ *
+ *    Description:   Return results of 'wbiosOtaGenerateMS_RESULTReq'.
+ *                   See 'ota_bios.h' for details.
+ *
+ *    Parameters:    MS_RESULT - buffer containing # (N bytes MSB->LSB)
+ *                   N - number of bytes in MS_RESULT
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosMS_RESULTInd(kal_uint8 *ms_result, kal_uint8 n);
+
+/*
+ *    Name:          otaWbiosKInd
+ *
+ *    Description:   Return results of 'wbiosOtaGenerateKReq'.
+ *                   The least significant 64-bits of K are all that
+ *                   need to be passed to this function.
+ *                   See 'ota_bios.h' for details.
+ *
+ *    Parameters:    K - buffer containing # (8 bytes MSB->LSB)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void otaWbiosKInd(kal_uint8 *k);
+
+/*
+ * Description: This function is called repeatedly to write multiple blocks of data
+ *               to FLASH
+ *
+ * Parameters:  void
+ *              
+ * Returns:     void
+ *
+ */
+void OtaWritePrlToNvramAck(void);
+
+/*
+ * Description: Test Mode Msg from ETS instructs PS to ignore A_KEY_PREV 
+ *
+ * Parameters:   kal_bool Ignore 
+ *
+ * Returns:      void
+ *
+ */
+void otaWbiosSetIgnoreAkeyPrev(kal_bool Ignore);
+
+/*
+ * Description: Test Mode Msg from ETS instructs PS to ignore A_KEY_PREV 
+ *
+ * Parameters:   kal_bool Ignore 
+ *
+ * Returns:      void
+ *
+ */
+kal_bool otaWbiosGetIgnoreAkeyPrev(void);
+
+/*
+ *  Name:         otaWbiosExcessSPLFailInd()
+ *
+ *  Description:  Indicate the UI's SPL attempt failure
+ *
+ *  Parameters:   None 
+ *                       
+ *  Returns:      None 
+ *
+ */
+void otaWbiosExcessSPLFailInd(void);
+
+void otaWbiosKeyResponse(UimRspMsgT* MsgDataP);
+void otaWbiosKeyGenResponse(UimRspMsgT* MsgDataP);
+void otaWbiosOTAPAResponse(UimRspMsgT* MsgDataP);
+void otaWbiosValResponse(UimRspMsgT* MsgDataP);
+void otaWbiosConfResponse(UimRspMsgT* MsgDataP);
+void otaWbiosDNLDResponse(UimRspMsgT* MsgDataP);
+void otaWbiosSSPRConfResponse(UimRspMsgT* MsgDataP);
+void otaWbiosSSPRDNLDResponse(UimRspMsgT* MsgDataP);
+void otaWbiosReAuthRespons(UimRspMsgT *MsgDataP);
+void otaWbiosCommitResponse(UimRspMsgT * MsgDataP);
+void otaWbiosUpdateBinRespons(UimRspMsgT * MsgDataP);
+kal_bool otaWbiosGetUimAKeyGenerated(void);
+extern kal_bool OtaSessionInProgress;
+extern kal_bool otaWbiosInitialized;
+extern kal_bool IOTAinProgress;
+
+#endif /* _OTA_API_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_auth.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_auth.h
new file mode 100644
index 0000000..f64fb48
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_auth.h
@@ -0,0 +1,264 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_auth.h
+ * Project:            OTASP
+ * Original Author:  Dan Doucette
+ * Creation Date:      Sept 3, 1999
+ *
+ * Description:        Definition of functions responsible for the 
+ *                     reception and processing of key request messages
+ *                   and re authentication messages
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: ota_auth.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.2  2004/03/25 12:08:06  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:21  fpeng
+ * Initial revision
+ * Revision 1.3  2002/06/06 11:11:32  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:09  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.2  2001/05/17 11:06:46  mclee
+ * removed parameters passed in otaMakeIMSI_S1 prototype
+ * Revision 1.1  2000/08/23 11:53:49  hhong
+ * Initial revision
+ * Revision 1.5  2000/01/25 22:54:05  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.4  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.3  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.2  1999/11/12 20:30:22  ddoucett
+ * fixed define
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_AUTH_H
+#define _OTA_AUTH_H   1
+
+/*
+ *    Dependencies
+ */
+#include "ota_tune.h"   /* User tunable parameters */
+#include "ota_api.h"
+#include "ota_data.h"
+#include "ota_bios.h"   /* Interface to OS */
+#include "ota_uim_pars.h"
+#include "ota_sec.h"
+
+/*
+ *
+ *    Functions
+ *
+ */
+
+/*
+ *    Name:          authApiInitialize
+ *
+ *    Description:   Initialize the AUTHENTICATION unit
+ *
+ *    Parameters:    (none)
+ *
+ *    Returns:       (none)
+ *
+ */
+void authApiInitialize(void);
+
+/*
+ *    Name:          authSecSetDigits
+ *
+ *    Description:   Set the dialled digits for a user-initiated OTASP
+ *                   session. 
+ *                   If <6 dialled digits, ESN must be used to fill up to 6.
+ *
+ *    Parameters:    digits - array of bytes containing dialled digits
+ *                   digit_mode - if KAL_TRUE, 8-bit else 4-bit digits
+ *                   len - # of digits in array. Must be at LEAT 6
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void authSecSetDigits(kal_uint8 *digits, kal_bool digit_mode, kal_uint8 len);
+
+/*
+ *    Name:          authApiReleaseReq
+ *
+ *    Description:   Restart the Authentication Unit 
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void authApiReleaseReq(void);
+
+/*
+ *    Name:          authParsKeyReq
+ *
+ *    Description:   Receive parameters for key generation
+ *
+ *    Parameters:    KeyReqMsg* key request message structure defined in
+ *                   ota_msgs.h
+ *
+ *    Returns:       (none)
+ *
+ */
+void authParsKeyReq(KeyReqMsg *msg);
+
+/*
+ *    Name:          authParsKeyGenReq
+ *
+ *    Description:   Generate key
+ *
+ *    Parameters:    KeyGenReqMsg key generate structure defined in
+ *                   ota_msgs.h
+ *
+ *    Returns:       (none)
+ *
+ */
+void authParsKeyGenReq(KeyGenReqMsg *msg);
+
+/*
+ *    Name:          authParsReAuthReq
+ *
+ *    Description:   Re-authenticate the mobile-station
+ *
+ *    Parameters:    ReAuthReqMsg* reauth request structure defined in
+ *                   ota_msgs.h
+ *
+ *    Returns:       (none)
+ *
+ */
+void authParsReAuthReq(ReAuthReqMsg *msg);
+
+/*
+ * 
+ *    API Interface for MS_RESULT and A_KEY calculations
+ *    
+ */
+
+/*
+ *    Name:          authApiMS_RESULTInd
+ *
+ *    Description:   Return results of 'wbiosOtaGenerateMS_RESULT'.
+ *                   See 'ota_bios.h' for details.
+ *
+ *    Parameters:    MS_RESULT - buffer containing # (N bytes MSB->LSB)
+ *                   N - number of bytes in MS_RESULT
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void authApiMS_RESULTInd(kal_uint8 *ms_result, kal_uint8 n);
+
+/*
+ *    Name:          authApiKInd
+ *
+ *    Description:   Return results of 'wbiosOtaGenerateKReq'.
+ *                   The least significant 64-bits of K are all that
+ *                   need to be passed to this function.
+ *                   See 'ota_bios.h' for details.
+ *
+ *    Parameters:    K - buffer containing # (8 bytes MSB->LSB)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void authApiKInd(kal_uint8 *k);
+
+/*
+ *    Name:          otaMakeIMSI_S1
+ *
+ *    Description:   Creates the IMSI S1 parameter used for authentication
+ *
+ *    Parameters:    (NONE) 
+ *
+ *    Returns:       kal_uint32 imsi_s1 - returns the imsi s1 parameter
+ *
+ */
+kal_uint32 otaMakeIMSI_S1(void);
+
+
+#endif /* _OTA_AUTH_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_bios.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_bios.h
new file mode 100644
index 0000000..d79e0d9
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_bios.h
@@ -0,0 +1,616 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_bios.h
+ * Project:            OTASP
+ * Original Author:  Dan Doucette
+ * Creation Date:   Sept 3, 1999
+ *
+ * Description:     IS-683A MS OTASP Protocol Engine call-outs. The customer
+ *                  must provide an implementation of these functions in
+ *                  the wrapper for this protocol engine.
+ *
+ * Restrictions:    The WBIOS calls must not block. 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * 220, 6815-8th Street N.E.
+ * Calgary, Alberta, Canada T2E 7H7
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+  *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ * $Log: ota_bios.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - L3, folder ps
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.3  2006/03/10 15:44:06  winston
+ * Fix CR7319: Verizon OTA implementation and bug fixes
+ * Revision 1.2  2004/03/25 12:08:06  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:21  fpeng
+ * Initial revision
+ * Revision 1.3  2002/06/06 11:11:41  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:19  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.6  2001/06/01 15:08:35  mclee
+ * Fixed Prototype
+ * Revision 1.5  2001/06/01 12:42:56  mclee
+ * Added prototype wbiosOtaNewPRLDownload
+ * Revision 1.4  2001/04/30 15:23:22  mclee
+ * Added prototypes for wbiosOtaEncode3Digit(), wbiosOtaEncode2Digit(), and wbiosOtaEncodeIMSIs1().
+ * Revision 1.3  2001/04/04 10:39:07  mclee
+ * Added prototypes for wbiosOtaPowerDownWait and wbiosOtaPendingPowerDown
+ * Revision 1.2  2000/10/31 22:57:24Z  mclee
+ * Added wbiosOtaSPLUnlockInd & wbiosOtaSSDUpdInd
+ * Revision 1.1  2000/08/23 18:53:54Z  hhong
+ * Initial revision
+ * Revision 1.13  2000/01/26 23:34:15  ddoucett
+ * added release reason to DisconnectInd
+ *
+ * Revision 1.12  2000/01/25 22:54:05  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.11  2000/01/20 21:46:31  ddoucett
+ * changed api for AuthOriginatin and AuthTermination.  Changed Authx
+ * authentication function to AuthOtapa
+ *
+ * Revision 1.10  2000/01/12 02:02:22  ddoucett
+ * changed to be consistent with api document
+ *
+ * Revision 1.9  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.8  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.7  1999/11/29 20:55:27  ddoucett
+ * changed api adding disconnectInd and removine InSvcInd
+ *
+ * Revision 1.6  1999/11/25 19:53:35  ddoucett
+ * added update akey event
+ *
+ * Revision 1.5  1999/11/23 17:07:49  ddoucett
+ * changed origReq
+ *
+ * Revision 1.4  1999/11/12 20:30:22  ddoucett
+ * fixed define
+ *
+ * Revision 1.3  1999/11/03 23:38:36  ddoucett
+ * added GetMDNParms
+ *
+ * Revision 1.2  1999/11/03 00:43:48  ddoucett
+ * added release and update procs
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+#ifndef _OTA_BIOS_H
+#define _OTA_BIOS_H   1
+
+#include "ota_data.h"
+
+/*
+ *    Functions
+ */
+
+/*
+ *    Name:          wbiosOtaConnectInd
+ *
+ *    Description:   Indication the OTASP PE has been connected
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaConnectInd(void);
+
+/*
+ *    Name:          wbiosOtaDisconnectInd
+ *
+ *    Description:   Indication the OTASP PE has been disconnected
+ *
+ *    Parameters:    kal_uint8 reason; Reason for disconnect
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaDisconnectInd(kal_uint8 reason);
+
+/*
+ *    Name:          wbiosOtaReleaseReq
+ *
+ *    Description:   Request to IS-95 PE to release the present
+ *                   OTASP connection
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaReleaseReq(void);
+
+
+/*
+ *    Name:          wbiosOtaSessionPrematureTermination
+ *
+ *    Description:   OTASP engine callout indicating the current OTAPA
+ *                   session has been prematurely terminated.
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaSessionPrematureTermination(void);
+
+/*
+ *    Name:          wbiosOtaOTAPASessionStateInd
+ *
+ *    Description:   OTASP engine callout indicating the state of the 
+ *                   current OTAPA session
+ *
+ *    Parameters:    output:    start_stop - KAL_TRUE if an otapa session is
+ *                                           starting
+ *                                           KAL_FALSE if an otapa session is 
+ *                                           just ending
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaOTAPASessionStateInd(kal_bool start_stop);
+
+
+
+/*
+ *    Name:          wbiosOtaSendMsgReq
+ *
+ *    Description:   Send OTASP message on IS-95 Data Link. If CONFIRM
+ *                   is requested of this message, the status of the message
+ *                   must be reported via the API (otaWbiosMsgConfirm)
+ *
+ *                   NOTE: The OTASP PE will ALWAYS use CONFIRM
+ *
+ *    Parameters:    data - octets to send
+ *                   len - # of octets
+ *                   confirm - if KAL_TRUE use confirmed services of Data Link
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaSendMsgReq(kal_uint8 *data, kal_uint16 len, kal_bool confirm );
+
+/*
+ *    Name:          wbiosOtaAcceptMsg
+ *
+ *    Description:   Indicate status of last received message.
+ *                   When otaOTASPRcvMsgIndication is called, the message
+ *                   is processed and if it is valid, this function is called
+ *                   with success, otherwise with failure.
+ *                  
+ *    Parameters:    success - if KAL_TRUE message was valid otherwise invalid.
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaAcceptMsg(kal_bool success);
+
+/*
+ *    Name:          wbiosOtaUpdateData
+ *
+ *    Description:   Indication to the IS-95 PE some or all of the data
+ *                   parameters in OTASP have been changed
+ *                  
+ *    Parameters:    kal_uint8 dataMask:  bitmask indicating which parameters 
+ *                                    have changed
+ *
+ *    Returns:       None
+ *
+ */
+void wbiosOtaUpdateData(kal_uint8 dataMask);
+
+/*
+ *    Name:          wbiosOtaSSDUpdInd
+ *
+ *    Description:   SSD Update Success
+ *                  
+ *    Parameters:    Nothing
+ *
+ *    Returns:       Nothing
+ *
+ */
+void wbiosOtaSSDUpdInd(void);
+
+/*
+ *    Name:          wbiosOtaUpdateAKey
+ *
+ *    Description:   Indication to the IS-95 PE the A-Key has been 
+ *                   updated
+ *                  
+ *    Parameters:    kal_uint8 *akey:  8 byte A-Key
+ *
+ *    Returns:       None
+ *
+ */
+void wbiosOtaUpdateAKey(kal_uint8 *akey);
+
+/*
+ *    Name:          wbiosOtaSystemError
+ *
+ *    Description:   Report a SW error in the OTASP PE. If this function
+ *                   returns, the behaviour of the OTASP PE will be
+ *                   unpredicatable.
+ *
+ *    Parameters:    error - Error Code (see OTA_ERROR_CODE above).
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void wbiosOtaSystemError(kal_uint16 error);
+
+/*
+ *    IMPORTANT
+ *    ---------
+ *
+ *    Random # generators must be cryptographically secure (pseudo-random,
+ *    uniform statistical distribution over range, sequence must be
+ *    statistically uncorrelated, and not derivable from previous numbers
+ *
+ *    The Blum Blum Shub (BBS) algorithm is acceptable if P, Q and N are
+ *    chosen such that a computation based attack on the NEXT random number 
+ *    is unfeasible.
+ *
+ *    NOTE that simple LFSR (Linear Feedback Shift Register) random # generators
+ *    are NOT acceptable as all of this type have been cracked (even though
+ *    the perdiodicity of such an LFSR could be made large enough).
+ */
+
+/*
+ *    Name:          wbiosOtaGenerateRAND32
+ *
+ *    Description:   Generate a pseudo-random. This # does not have to
+ *                   cryptographically secure and so can be implemented with
+ *                   ANSI rand(). e.g. kal_uint32 num = rand() + (rand()<<16);
+ *                   
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       kal_uint32 - random #
+ *
+ */
+kal_uint32 wbiosOtaGenerateRAND32(void); 
+
+/*
+ *    Name:          wbiosOtaGenerateRAND160
+ *
+ *    Description:   Generate a 160-bit pseudo-random #. This # MUST BE
+ *                   cryptographically secure and so should be implemented with
+ *                   Blum Blum Shub (BBS) or equivalent.
+ *
+ *                   This function is SYNCHRONOUS as it is NOT invoked
+ *                   directly by the OTASP PE. The MS_RESULT calculation
+ *                   function (otawbiosGenerateMS_RESULT) can invoke this
+ *                   function while running in a separate thread.
+ *
+ *    Parameters:    rand160 - pointer to buffer (20 bytes MSB->LSB)
+ *
+ *    Returns:       (nothing) 
+ *
+ */
+void wbiosOtaGenerateRAND160(kal_uint8 *rand160);
+
+/*
+ *    Name:          wbiosOtaGenerateMS_RESULTReq
+ *
+ *    Description:   Calculate MS_RESULT = PARAM_G ^ X MOD PARAM_P.
+ *
+ *                   X should be produced by calling 'otawbiosGenerateRAND160'
+ *                   or equivalent.
+ *
+ *                   This function is ASYNCHRONOUS as the result is expected
+ *                   to take time and so the result must be passed back
+ *                   via the otaMS_RESULT() function.
+ *
+ *    Parameters:    PARAM_G - buffer containing 20 bytes (MSB->LSB)
+ *                   PARAM_P - buffer containing 64 bytes (MSB->LSB)
+ *
+ *    Returns:       (nothing) 
+ */
+void wbiosOtaGenerateMS_RESULTReq(kal_uint8 *param_g, kal_uint8 *param_p);
+
+/*
+ *    Name:          wbiosOtaGenerateKReq
+ *
+ *    Description:   Calculate K = BS_RESULT ^ X MOD PARAM_P.
+ *
+ *                   X and P are the same value used in CalculateMS_RESULT.
+ *
+ *                   This function is ASYNCHRONOUS as the result is expected
+ *                   to take time and so the result must be passed back
+ *                   via the otaK() function.
+ *
+ *    Parameters:    BS_RESULT - buffer containing N bytes (MSB->LSB)
+ *                   N - number of bytes in BS_RESULT
+ *
+ *    Returns:       success - KAL_TRUE if able to start key generation
+ */
+kal_bool wbiosOtaGenerateKReq(kal_uint8 *bs_result, kal_uint8 n);
+
+
+/*
+ *    Authentication Procedures as Defined in IS-95 6.3.12.1.6/7
+ */
+
+/*
+ *
+ * Name:        wbiosOtaGetAuthrTermination()
+ *
+ * Description: Calculate AUTHR for Mobile Terminations and calculate new
+ *              values for CMEA key, VPM ,and data mask for cellular data
+ *              encryption
+ *
+ * Reference:   SP-3693 Section 6.3.12.1.7
+ *
+ * Parameters:  kal_uint32 Rand - random number used for challenges
+ *              kal_uint32 esn      - electronic mobile serial number
+ *              kal_uint32 imsi_s1  - international mobile station ID (7 digit part)
+ *
+ * Returns:     kal_uint32 - 18-bit AUTHR for Page Response
+ *              kal_uint8 *authData -- Pointer to a 3 byte AUTH_DATA array
+ *
+ * Notes:
+ *
+ *
+ */
+kal_uint32 wbiosOtaGetAuthrTermination(kal_uint32 rand, kal_uint32 esn, kal_uint32 imsi_s1,
+       kal_uint8 *authData);
+
+/*
+ *
+ * Name:        wbiosOtaGetAuthrOrigination()
+ *
+ * Description: Calculates AUTHR for Mobile Origination and calculate new
+ *              values for CMEA key, VPM ,and data mask for cellular data
+ *              encryption
+ *
+ * Reference:   SP-3693 Section 6.3.12.1.6, Appendix A: Section 2.3
+ *
+ * Parameters:  kal_uint32 rand     - Random number used for BS challenge
+ *              kal_uint32 esn      - electronic mobile serial number
+ *              kal_uint32 imsi_s1  - international mobile station ID (7 digit part)
+ *              kal_uint8 *digits   - last 6 Called-Address digit codes
+ *
+ * Returns:     kal_uint32 - 18-bit AUTHR for Origination
+ *              kal_uint8 *authData - pointer to an array of 3 bytes containing
+ *                                AUTH_DATA parameter.
+ *
+ * Notes:       We set up the pre-loads for CAVE here as:
+ *
+ *                LFSR      32-bit RANDs value
+ *                R9..R11   24-bit IMSI_S1 first, then we overwrite with the
+ *                          non-zero digit codes (up to 6), such that the
+ *                          last code goes to the 4 LS bits of R11.
+ *
+ */
+kal_uint32 wbiosOtaGetAuthrOrigination( kal_uint32 rand, kal_uint32 esn, 
+                        kal_uint32 imsi_s1, kal_uint8 *digits, kal_uint8 *authData);
+
+/*
+ *
+ * Name:        wbiosOtaGetAuthOTAPA()
+ *
+ * Description: Calculates AUTHR, AUTHU or AUTHBS
+ *
+ * Parameters:  kal_uint32 rand     - random value
+ *              kal_uint32 esn      - Mobile's electronic serial number
+ *              kal_uint32 imsi_s1  - imsi s1 value
+ *
+ * Returns:     kal_uint32 - 18-bit AUTHR, AUTHU or AUTHBS Value
+ *
+ * Notes:       Sets up the LFSR and the CAVE Mixing Registers, and then
+ *              runs the CAVE algorithm for 8 rounds. The 18-bit result is
+ *              picked up from the CAVE registers, and is returned as an
+ *              unsigned long.
+ *
+ */
+kal_uint32 wbiosOtaGetAuthOTAPA(kal_uint32 rand, kal_uint32 esn, kal_uint32 imsi_s1);
+
+/*
+ *
+ * Name:        wbiosOtaCalcCRC()
+ *
+ * Description: calculates crc for the given message
+ *
+ * Parameters:  kal_uint8 *msg - message to calculate the crc on including
+ *                           the crc on the end of the message 
+ *              kal_uint16 length - length of the message
+ *
+ * Returns:     kal_uint16 crc - returns the calculated crc
+ *
+ * Notes:       
+ *
+ */
+kal_uint16 wbiosOtaCalcCRC(kal_uint8 *msg, kal_uint16 length);
+
+/*
+ * Name: wbiosOtaPendingPowerDown
+ *
+ * Description: Tells OTA powerdown request received during SSPR DBM
+ *              write.  Set flag for OTA to kick engine to power down
+ *              after DBM Block Write.
+ *
+ * Parameters:  None 
+ *
+ * Returns:     void
+ *
+ */
+void wbiosOtaPendingPowerDown(void);
+
+/* 
+ * Name: wbiosOtaPendingPowerDown
+ *
+ * Description: Tells PswPowerMsg() in pswueng.c that OTA currently writing
+ *              blocks to DBM.  Ask engine to hold off powering down.
+ *
+ * Parameters:  None 
+ *
+ * Returns:     kal_bool
+ *
+ */
+kal_bool wbiosOtaPowerDownWait(void);
+
+/* 
+ * Name: wbiosOtaEncodeIMSI3Digit
+ *
+ * Description: Encodes 3 digit MDN to 10 bit IMSI stored in kal_uint16
+ *
+ * Parameters:  kal_uint8 D1, D2, D3 inputs for encoding
+ *
+ * Returns:     kal_uint16 result
+ *
+ */
+kal_uint16 wbiosOtaEncodeIMSI3Digit(kal_uint8 D1, kal_uint8 D2, kal_uint8 D3);
+
+/* 
+ * Name: wbiosOtaEncodeIMSI2Digit
+ *
+ * Description: Encodes 2 digit MDN to 7 bit IMSI stored in kal_uint8
+ *
+ * Parameters:  kal_uint8 D1, D2, inputs for encoding
+ *
+ * Returns:     kal_uint8 result
+ *
+ */
+kal_uint8 wbiosOtaEncodeIMSI2Digit(kal_uint8 D1, kal_uint8 D2);
+
+/* 
+ * Name: wbiosOtaEncodeIMSIs1
+ *
+ * Description: Encodes IMSI_s1 from 7 Digit MDN stored in kal_uint32
+ *
+ * Parameters:  kal_uint8 digits[7]
+ *
+ * Returns:     kal_uint32 result
+ *
+ */
+kal_uint32 wbiosOtaEncodeIMSIs1(kal_uint8 *digits);
+
+/* 
+ * Name: wbiosOtaStatusIndication
+ *
+ * Description: send VAL_OTASP_IND_MSG to VAl to indicate the status
+ *              of OTA session.
+ *
+ * Parameters:  status code 
+ *
+ * Returns:     none
+ *
+ */
+void wbiosOtaStatusIndication(kal_uint8 status);
+
+/*
+ * 
+ *    Functions which provide the data interface to semi permanent
+ *    memory
+ *   
+ */
+void wbiosOtaSetIS95NAMParms(IS95NAMParms* in);
+void wbiosOtaSetIS95IMSIParms(IS95IMSI_TParms* in);
+void wbiosOtaSetIS95MDNParms(IS683DigitParms* in);
+void wbiosOtaSetIS683NAMStatusParms(IS683NAMStatusParms* in);
+void wbiosOtaSetIS683SSPRList(IS683SSPRListBlock* in);
+void wbiosOtaSetIS683SSPRStatus(kal_bool Status);
+kal_bool wbiosOtaGetIS683SSPRStatus(void);
+
+void wbiosOtaGetIS95PermParms(IS95PermParms* out);
+void wbiosOtaGetIS95IMSIParms(IS95IMSI_TParms* in);
+void wbiosOtaGetIS95MDNParms(IS683DigitParms* in);
+void wbiosOtaGetIS95NAMParms(IS95NAMParms* out);
+void wbiosOtaGetIS683NAMStatusParms(IS683NAMStatusParms* out);
+void wbiosOtaGetIS683SSPRList(IS683SSPRListBlock* out);
+
+void wbiosOtaMapMDNtoIMSI(IS683DigitParms *DigitPARMS, IMSIType* imsiP);
+void wbiosOtaMapIMSItoMDN(IMSIType* imsiP, IS683DigitParms* DigitPARMS, kal_bool fmtDigit);
+void wbiosOtaDecodeIMSI3Digit(kal_uint16 code3, kal_uint8 *D1, kal_uint8 *D2, kal_uint8 *D3);
+void wbiosOtaDecodeIMSI2Digit(kal_uint8 code2, kal_uint8 *D1, kal_uint8 *D2);
+void wbiosOtaDecodeIMSIs1(kal_uint32 s1, kal_uint8 *digits);
+kal_bool wbiosOtaGetAKeyGenerated(void);
+void wbiosOtaResetAKeyGenerated(void);
+void wbiosOtaSetPowercycleMode(OtaCompletePowerupModeType mode);
+OtaCompletePowerupModeType wbiosOtaGetPowercycleMode(void);
+void wbiosOtaSetCompletedOtasp(kal_bool var);
+kal_bool wbiosOtaGetCompletedOtasp(void);
+void wbiosOtaSetCompleteOTAPA(kal_bool val);
+kal_bool wbiosOtaGetCompleteOTAPA(void);
+void wbiosOtaSetNamLock(kal_bool namlock);
+kal_bool wbiosOtaGetNamLock(void);
+void wbiosOtaSetIndicateOTACompleted(kal_bool var);
+kal_bool wbiosOtaGetIndicateOTACompleted(void);
+
+#endif /* _OTA_BIOS_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_data.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_data.h
new file mode 100644
index 0000000..324859e
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_data.h
@@ -0,0 +1,270 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_data.h
+ * Project:            OTASP
+ * Original Author:  Dan Doucette
+ * Creation Date:    Sept 2, 1999
+ *
+ * Description:        Declaration of all semi permanent data types used 
+ *                   throughout OTASP engine
+ *
+ * Restrictions: 
+ *
+ * Dependencies:       
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ * $Log: ota_data.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.3  2006/03/10 15:44:56  winston
+ * Fix CR7319: Verizon OTA implementation and bug fixes
+ * Revision 1.2  2004/03/25 12:08:06  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:22  fpeng
+ * Initial revision
+ * Revision 1.4  2003/05/05 14:26:13  ameya
+ * Moved IS95NAMParms structure and IS95IMSI_TParms structure to wbios.h.
+ * Revision 1.3  2002/06/06 11:11:46  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:23  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.4  2001/02/16 16:31:33  mclee
+ * Added MAX_SID_NID to IS95NAMParms to remain consistent with 
+ * cpIS95NAMParms.
+ * Revision 1.3  2001/01/30 01:37:11Z  mclee
+ * Added OTAPAAllow field to IS683NAMStatusParms struct.
+ * Revision 1.2  2000/10/31 22:58:12Z  mclee
+ * #ifndef OTA data updated parameter to avoid duplicate #define in engine.h
+ * Revision 1.1  2000/08/23 18:53:56Z  hhong
+ * Initial revision
+ * Revision 1.8  2000/01/25 22:54:05  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.7  2000/01/24 23:14:38  ddoucett
+ * removed duplicate NAM_LOCK parameters in structures
+ *
+ * Revision 1.6  2000/01/20 21:46:31  ddoucett
+ * changed SSPRBlockList structure parameter to LIST_SIZE and to kal_uint16
+ *
+ * Revision 1.5  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.4  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.3  1999/11/12 20:30:22  ddoucett
+ * fixed define
+ *
+ * Revision 1.2  1999/11/03 00:24:19  ddoucett
+ * added Update bitmask defines
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_DATA_H
+#define _OTA_DATA_H   1
+
+#include "ota_tune.h"  /* tunable parameters */
+#include "wbios.h"
+/*
+ *    Updated Data Mask Bits Defined
+ */
+
+#ifndef NAM_UPDATED
+#define NAM_UPDATED       0x01
+#define IMSI_UPDATED      0x02
+#define MDN_UPDATED       0x04
+#define AUTH_UPDATED      0x08
+#define SSPR_UPDATED      0x10
+#endif
+
+#define NAMSTATUS_UPDATED 0x20
+#define OTA_MEID_SIZE     7     /*  same as defined in NAM */
+#define OTAPA_NAM_LOCK_KEEP_BS_SETTING 1
+#define OTAPA_NAM_LOCK_ALWAYS_LOCKED 2
+
+/* Settings used to determine whether UI will perform powercycle after OTASP completed or
+ * PSW perform an auto powercycle without UI intervention.  Auto PSW would be used
+ * on devices without a UI, e.g. datacards.
+ */
+typedef enum
+{
+   OTASP_COMPLETE_UI_POWERCYCLE,     
+   OTASP_COMPLETE_PSW_AUTO_POWERCYCLE
+} OtaCompletePowerupModeType;
+
+
+/*
+ *    OTASP Protocol Capability 
+ *
+ *    This structure holds fields that define the capabilities of the
+ *    OTASP PE. It selects which protocols and theire respective versions
+ *    are supported as wll as general information on the mobile station itself.
+ */
+typedef struct {
+/* ADD (i.e. OR) FEATURES TO INDICATE WHICH PROTOCOLS SHOULD BE SUPPORTED */
+    kal_uint8 FEATURE_IDs;
+
+/* DO NOT NEED TO FILL IN AS THEY WILL BE COPIED FROM THE NAM PERM INDICATORS */
+    kal_uint16 MOB_FIRM_REV; /* Revision of firmware in mobile */
+    kal_uint8 MOB_MODEL;   /* Model of mobile */
+
+/* FILL IN AS APPROPRIATE FOR OTASP SUPPORT REQUIRED */
+    kal_uint8 BAND_MODE_CAP;  /* Band Mode Capability */
+    kal_uint8 DATA_P_REV;     /* NAM Download protocol revision */
+    kal_uint8 A_KEY_P_REV;    /* Key Exchange protocol revision */
+    kal_uint8 SSPR_P_REV;     /* SSPR protocol revision */
+    kal_uint8 SPL_P_REV;      /* Service Provisioning Lock protocol revision */
+    kal_uint8 OTAPA_P_REV;    /* OTAPA protocol revision */
+} OTASP_PROTCAP;
+
+/*
+ *  IS-95B Authentication Data
+ */
+typedef struct {
+  kal_uint8 A_KEY_TEMP[8];
+  kal_uint8 SSDa[8];
+  kal_uint8 SSDb[8];
+  kal_uint8 A_KEY_COUNT; 
+  kal_bool Updated; 
+} IS95AuthParms;
+
+/*
+ *  IS-95B Permanent Mobile Station Indicators
+ */
+typedef struct {
+  kal_uint32 ESN;
+  kal_uint16 MOB_FIRM_REV;
+  kal_uint8 MOB_MODEL;
+  kal_uint8 SCM;
+  kal_uint8 MOB_P_REV;
+  kal_uint8 MEID[OTA_MEID_SIZE];
+} IS95PermParms;
+
+/*
+ *    IS-683 Mobile Directory Number Block
+ */
+typedef struct {
+   kal_uint8 N_DIGITS;
+   kal_uint8 MDN[OTA_MAX_MDN_DIGITS];
+   kal_bool Updated;
+}IS683DigitParms;
+
+/*
+ *  IS-683 Status Indicators
+ */
+typedef struct {
+  /* IS-683 flags */
+  kal_uint32 SPC;
+  kal_uint8  NAM_LOCK;
+  kal_bool Updated;
+
+  /* OTA internal flags */
+  kal_bool OTAPAAllow;		 /*	Allows OTAPA session to be handled by MS */
+  kal_bool OTAFuncEnable;	 /* Enable OTA Functionality in MS */
+  kal_bool SPASMEnable;		 /* Enable SPASM function in MS */
+  kal_bool SPCChangeAllowed; /* SPC change control flag */
+
+} IS683NAMStatusParms;
+
+/*
+ *    SSPR List Data Structures
+ *    
+ */
+
+/*
+ *  IS-683 SSPR List
+ */
+typedef struct {
+  kal_uint16 PR_LIST_SIZE;
+  kal_uint16 PR_LIST_ID;
+  PRL_PREV PR_SSPR_P_REV;
+  kal_bool PREF_ONLY;
+  kal_uint8 DEF_ROAM_IND;
+  kal_uint16 NUM_ACQ_RECS;
+  kal_uint16 NUM_SYS_RECS;
+  kal_uint16 NUM_SUBNET_RECS;
+} IS683SSPRList;
+
+/*
+ *  IS-683 SSPR List in block list form
+ */
+typedef struct {
+   kal_uint16 LIST_SIZE;
+   kal_uint8 SSPRList[PRL_MAX_SIZE+1];
+   kal_bool Updated;
+} IS683SSPRListBlock;
+
+
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_msgs.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_msgs.h
new file mode 100644
index 0000000..3ffdc8f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_msgs.h
@@ -0,0 +1,441 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:          ota_msgs.h
+ * Project:            OTASP
+ * Original Author:  Dan Doucette
+ * Creation Date:    Sept 3, 1999
+ *
+ * Description:        Message structure definitions for message passing
+ *                     between the internal modules of the OTASP engine
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.4 $
+ *
+ * $Log: ota_msgs.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.4  2006/03/10 15:45:53  winston
+ * Fix CR7319: Verizon OTA implementation and bug fixes
+ * Revision 1.3  2005/03/18 13:52:13  blee
+ * 4.05 Merge
+ * Revision 1.2  2004/03/25 12:08:06  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:22  fpeng
+ * Initial revision
+ * Revision 1.3  2002/06/06 11:11:52  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:27  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.1  2000/08/23 11:53:58  hhong
+ * Initial revision
+ * Revision 1.5  2000/01/26 21:04:37  ddoucett
+ * removed arm compiler warnings
+ *
+ * Revision 1.4  2000/01/25 22:54:05  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.3  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.2  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_MSGS_H
+#define _OTA_MSGS_H
+
+#include "ota_tune.h"    /* Message limit defines */
+
+/*
+ *    A few limits used by the messages which are not likely to 
+ *    be user configurable
+ */
+
+/*
+ *    Length in bytes of the diffie hellman prime number 
+ *    32 bytes -- 512 bits
+ */
+#define PARAM_P_LEN 64
+
+/*
+ *    Length in bytes of the diffie hellman base number 
+ *    20 bytes -- 160 bits
+ */
+#define PARAM_G_LEN 20
+
+/*
+ *    Length in bytes of the diffie hellman bs result
+ *    32 bytes -- 512 bits
+ */
+#define MAX_BS_RESULT_LEN 64
+
+/*
+ *    Length in bytes of the diffie hellman ms result
+ *    32 bytes -- 512 bits
+ */
+#define MAX_MS_RESULT_LEN 64
+
+
+/*
+ *    Maximum Number of Validation Blocks contained in a
+ *    validation request message
+ */
+#define MAX_NUM_VAL_BLOCKS 3
+
+/*
+ *    Maximum Number of configuration Blocks contained in a
+ *    configuration response message
+ */
+#define MAX_NUM_CONFIG_BLOCKS 4
+
+/*
+ *    Maximum Number of download Blocks contained in a
+ *    download response message
+ */
+#define MAX_NUM_DOWNLOAD_BLOCKS 4
+
+/*
+ *    Maximum Number of feature Blocks contained in a
+ *    protocol capability response message
+ */
+/*#ifdef SYS_OPTION_RUIM*/
+#define MAX_NUM_FEATURE_BLOCKS 32
+/*#else
+#define MAX_NUM_FEATURE_BLOCKS (NAM_DNLD_SUPPORTED+KEY_XCHNG_SUPPORTED+SSPR_SUPPORTED+SSPR_SUPPORTED+SPL_SUPPORTED+OTAPA_SUPPORTED+ERI_SUPPORTED)
+#endif*/
+
+/*
+ *    Maximum number of additional fields contained in a 
+ *    protocol capability response message
+ */
+#define MAX_ADD_FIELD_BLOCKS 1
+
+/*
+ *    Maximum Number of record Blocks contained in a
+ *    extended protocol capability response message
+ */
+
+#define MAX_NUM_CAP_RECORDS 3
+
+/*
+ *    Maximum capbility record Length in record Blocks contained in a
+ *    extended protocol capability response message
+ */
+#define MAX_CAP_RECORD_LEN 7
+
+/*
+ *    Length of Protocol Capability Request Message without  
+ *    MEID-capable field
+ */
+#define OTA_PROTCAP_REQ_BASIC_LENGTH 1
+
+/*
+ *    OTASP P_Rev
+ */
+#define OTA_MOB_P_REV 0x04
+
+/*
+ *    OTA_OP_MODE_TYPE define for Protocol Cap Resp
+ */
+typedef enum {
+    OTA_OP_MODE0 = 0x80,  /* Analog */
+    OTA_OP_MODE1 = 0x40,  /* CDMA */
+    OTA_OP_MODE2 = 0x20   /* HRPD */
+} OTA_OP_MODE_TYPE;
+
+
+/* 
+ *    Forward Link Message Formats
+ *    
+ */
+
+/* Configuration request message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   kal_uint8   BLOCK_ID[MAX_NUM_CONFIG_BLOCKS];
+} ConfReqMsg;
+
+/* parameter block */
+typedef struct {
+   kal_uint8 BLOCK_ID;
+   kal_uint8 BLOCK_LEN;
+   kal_uint8 PARAM_DATA[MAX_PARAM_SIZE];
+} ParamData;
+
+#define DOWNLOAD_NAM_IMSI_SIZE         (7)
+
+/* download request message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   ParamData parms[MAX_NUM_DOWNLOAD_BLOCKS];
+} DownReqMsg;
+
+/* MS Key Request Message */
+typedef struct {
+   kal_uint8 A_KEY_P_REV;
+   kal_uint8 PARAM_P[PARAM_P_LEN];
+   kal_uint8 PARAM_G[PARAM_G_LEN];
+} KeyReqMsg;
+
+/* Key Generation Request Message */
+typedef struct {
+   kal_uint8 BS_RESULT_LEN;
+   kal_uint8 BS_RESULT[MAX_BS_RESULT_LEN];
+} KeyGenReqMsg;
+
+/* Re Authenticate Request Message */
+typedef struct {
+   kal_uint32 RAND;
+} ReAuthReqMsg;
+
+/* SSPR Configuration Request Message */
+typedef struct {
+   kal_uint8 BLOCK_ID;
+   kal_uint16 REQUEST_OFFSET;
+   kal_uint8 REQUEST_MAX_SIZE;
+} SSPRConfReqMsg;
+
+/* SSPR Download Request Message */
+typedef struct {
+   kal_uint8 BLOCK_ID;
+   kal_uint8 BLOCK_LEN;
+   kal_uint8 PARAM_DATA [MAX_PARAM_SIZE];
+} SSPRDownReqMsg;
+
+/* validation Request Message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   ParamData parms[MAX_NUM_VAL_BLOCKS];
+} ValReqMsg;   
+
+/* OTAPA Request Message */
+typedef struct {
+   kal_uint8 START_STOP;
+} OTAPAReqMsg;
+
+/* Protocol Capability Request Message */
+typedef struct {
+   kal_uint8 OTASP_P_REV;
+   kal_uint8 NUM_CAP_RECORDS;
+   kal_uint8 CAP_RECORD_TYPE[MAX_NUM_CAP_RECORDS];
+} ProtCapReqMsg;
+
+/*
+ *    Reverse Link Message Formats 
+ */
+
+/* Configuration Response Message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   ParamData parms[MAX_NUM_CONFIG_BLOCKS];
+   kal_uint8 RESULT_CODE[MAX_NUM_CONFIG_BLOCKS];
+} ConfRspMsg;
+
+/* Result Code Blocks */
+typedef struct {
+   kal_uint8 BLOCK_ID;
+   kal_uint8 RESULT_CODE;
+} ResultCode;
+
+/* Download Response Message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   ResultCode results[MAX_NUM_DOWNLOAD_BLOCKS];
+} DownRspMsg;
+
+/* MS Key Response Message */
+typedef struct {
+   kal_uint8 RESULT_CODE;
+} KeyRspMsg;
+
+/* Key Generation Response Message */
+typedef struct {
+   kal_uint8 RESULT_CODE;
+   kal_uint8 MS_RESULT_LEN;
+   kal_uint8 MS_RESULT[MAX_MS_RESULT_LEN];
+} KeyGenRspMsg;
+
+/* Re Authenticate Response Message */
+typedef struct {
+   kal_uint32 AUTHR;
+   kal_uint8 RANDC;
+   kal_uint8 COUNT;
+   kal_uint8 AUTH_DATA[3];
+} ReAuthRspMsg;
+
+/* Commit Response Message */
+typedef struct {
+   kal_uint8 RESULT_CODE;
+} CommitRspMsg;
+
+/* Feature Block */
+typedef struct {
+   kal_uint8 FEATURE_ID;
+   kal_uint8 FEATURE_P_REV;
+} FeatureBlock;
+
+/* Protocol Capability Response Message */
+typedef struct {
+   kal_uint16 MOB_FIRM_REV;
+   kal_uint8 MOB_MODEL;
+   kal_uint8 NUM_FEATURES;
+   FeatureBlock Features[MAX_NUM_FEATURE_BLOCKS];
+   kal_uint8 ADD_LENGTH;
+   kal_uint8 AddFields[MAX_ADD_FIELD_BLOCKS];
+} ProtCapRspMsg;
+
+/* Extended Protocol Capability Response Message Capbility Records Block*/
+typedef struct {
+	kal_uint8 CAP_RECORD_TYPE;
+	kal_uint8 CAP_RECORD_LEN;
+	kal_uint8 Fields[MAX_CAP_RECORD_LEN]; 
+} CapRecordsBlock;
+
+/* Extended Protocol Capability Response Message */
+typedef struct {
+   kal_uint8 OTASP_MOB_P_REV;
+   kal_uint16 MOB_FIRM_REV;
+   kal_uint8 MOB_MODEL;
+   kal_uint8 NUM_FEATURES;
+   FeatureBlock Features[MAX_NUM_FEATURE_BLOCKS];
+   kal_uint8 NUM_CAP_RECORDS;
+   CapRecordsBlock Records[MAX_NUM_CAP_RECORDS];
+} ExtendedProtCapRspMsg;
+/* SSPR Configuration Response Message */
+typedef struct {
+   kal_uint8 RESULT_CODE;
+   ParamData parms;
+} SSPRConfRspMsg;
+
+/* SSPR Download Response Message */
+typedef struct {
+   kal_uint8 BLOCK_ID;
+   kal_uint8 RESULT_CODE;
+   kal_uint16 SEGMENT_OFFSET;
+   kal_uint8 SEGMENT_SIZE;
+} SSPRDownRspMsg;
+
+/* Validation Response Message */
+typedef struct {
+   kal_uint8 NUM_BLOCKS;
+   ResultCode results[MAX_NUM_VAL_BLOCKS];
+} ValRspMsg;
+
+/* OTAPA Response Message */
+typedef struct {
+   kal_uint8 RESULT_CODE;
+   kal_uint8 NAM_LOCK_IND;
+   kal_uint32 RAND_OTAPA;
+} OTAPARspMsg;
+
+/*
+ *    OTA_MsgType: MsgType field of OTASP message (Request == Response)
+ */
+typedef enum {
+    OTA_CONF_RESP=0,
+    OTA_DNLD_RESP,
+    OTA_KEY_RESP,
+    OTA_KEY_GEN_RESP,
+    OTA_RE_AUTH_RESP,
+    OTA_COMMIT_RESP,
+    OTA_PROTCAP_RESP,
+    OTA_SSPR_CONF_RESP,
+    OTA_SSPR_DNLD_RESP,
+    OTA_VAL_RESP,
+    OTA_OTAPA_RESP,
+    OTA_EXT_PROTCAP_RESP=0x10
+} OTASP_RESP_MSG_TYPE;
+
+/*
+ *   MsgType field of OTASP message
+ */
+typedef enum {
+    OTA_CONF_REQ=0,
+    OTA_DNLD_REQ,
+    OTA_KEY_REQ,
+    OTA_KEY_GEN_REQ,
+    OTA_RE_AUTH_REQ,
+    OTA_COMMIT_REQ,
+    OTA_PROTCAP_REQ,
+    OTA_SSPR_CONF_REQ,
+    OTA_SSPR_DNLD_REQ,
+    OTA_VAL_REQ,
+    OTA_OTAPA_REQ,
+    OTA_UPDATE_BINARY_REQ
+} OTASP_REQ_MSG_TYPE;
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_ofs.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_ofs.h
new file mode 100644
index 0000000..ee24ef0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_ofs.h
@@ -0,0 +1,64 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************
+ *                                                               
+ * Module: otatok.ofs                     
+ *                                                               
+ * Purpose: Defines module id offsets to add with token value    
+ *          to create contiguous tokens.                         
+ *                               
+ ***************************************************************/
+
+kal_uint16 TokenOffsetsOta[6] =                               
+{                                                                
+  0,
+  13,
+  32,
+  32,
+  44,
+  72
+};
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_sec.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_sec.h
new file mode 100644
index 0000000..42317f1
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_sec.h
@@ -0,0 +1,417 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:     ota_sec.h
+ * Project:       OTASP
+ * Original Author:   Dan Doucette
+ * Creation Date:      Sept 1, 1999
+ *
+ * Description:      Declares functions used for the SECURITY and 
+ *                   DATABASE software blocks.
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ * $Log: ota_sec.h $
+ *
+ * 11 28 2017 sue.zhong
+ * [MOLY00291705] [Coverity Scanned Code Defect]CID:1162735 code defect happened in /mcu/common/modem/c2k/ps/isotel/inc/ota_uim_pars.h
+ * .
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.3  2006/03/10 15:41:04  winston
+ * Fix CR7319: Verizon OTA implementation and bug fixes
+ * Revision 1.2  2004/03/25 12:08:08  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:38:23  fpeng
+ * Initial revision
+ * Revision 1.3  2002/06/06 11:12:17  mclee
+ * Update Copywrite Information
+ * Revision 1.2  2001/11/20 12:14:59  mclee
+ * CBP3 to CBP4 straight OTA directory copy
+ * Revision 1.3  2001/04/30 15:24:42  mclee
+ * Added prototype secUpdateNAMParms().
+ * Revision 1.2  2001/04/03 10:07:40  mclee
+ * Added prototype for secSSPRListOK() defined in ota_sec.c
+ * Revision 1.1  2000/08/23 18:54:11Z  hhong
+ * Initial revision
+ * Revision 1.10  2000/01/25 22:54:05  ddoucett
+ * removed hard tabs
+ *
+ * Revision 1.9  2000/01/20 21:46:31  ddoucett
+ * removed ssda and ssdb update procedures from the api
+ *
+ * Revision 1.8  1999/12/21 22:24:43  ddoucett
+ * removed control M's
+ *
+ * Revision 1.7  1999/12/21 19:58:58  ddoucett
+ * tested version
+ *
+ * Revision 1.6  1999/11/29 20:55:27  ddoucett
+ * changed api adding disconnectInd and removine InSvcInd
+ *
+ * Revision 1.5  1999/11/25 19:53:35  ddoucett
+ * added ssda and ssdb update procedures
+ *
+ * Revision 1.4  1999/11/23 17:07:49  ddoucett
+ * changed origReq
+ *
+ * Revision 1.3  1999/11/12 20:30:22  ddoucett
+ * fixed define
+ *
+ * Revision 1.2  1999/11/03 00:24:02  ddoucett
+ * added release Request and updating procedure callouts
+ *
+ * Revision 1.1  1999/10/06 22:48:12  ddoucett
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_SEC_H
+#define _OTA_SEC_H   1
+
+/*
+ *    Dependencies
+ */
+
+#include "ota_api.h"
+#include "ota_uim_pars.h"
+#include "ota_data.h"
+
+/*
+ *
+ *    Functions
+ *
+ */
+/*
+ *    Name:          secApiConnectInd
+ *
+ *    Description:   Indication the previously given origination 
+ *                   request has been received and accepted/denied
+ *
+ *    Parameters:    None
+ *    
+ *    Returns:       (nothing)
+ *
+ */
+void secApiConnectInd(void);
+
+/*
+ *    Name:          secApiInitialize
+ *
+ *    Description:   Initialize Security
+ *
+ *    Parameters:    (none)
+ *
+ *    Returns:       (none)
+ *
+ */
+void secApiInitialize(void);
+
+/*
+ *    Name:          secApiOrigInd
+ *
+ *    Description:   Start an OTASP session. If an OTAPA session is already
+ *                   in progress, the OTAPA session will be cancelled.
+ *                   The digits passed are used for authentication procedures
+ *                   and MUST match the digits used for origination of the
+ *                   OTASP call with the base-station.
+ *
+ *    Parameters:    digits - pointer to digits that were used to originate
+ *                     the OTASP call with the base-station. A maximum of
+ *                     6 digits will be copied from this array.
+ *                   num -  actual number of digits in array
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void secApiOrigInd(kal_uint8 *digits, kal_uint8 num);
+
+
+/*
+ *    Name:          secApiReleaseReq
+ *
+ *    Description:   Indication the user has given a release
+ *                   request
+ *
+ *    Parameters:      (NONE)
+ *
+ *    Returns:       (NONE)
+ */
+void secApiReleaseReq(void);
+
+ 
+/*
+ *    Security to Parser Interface
+ */
+
+/*
+ *    Name:          secParsValidateReq
+ *
+ *    Description:   Function called in response to the base station
+ *                   request to validate
+ *
+ *    Parameters:      ValReqMsg* input: Request parameters
+ *                   ValRspMsg* output: Response parameters
+ *
+ *    Returns:       (NONE)
+ */
+void secParsValReq(ValReqMsg* msg);
+
+/*
+ *    Name:          secParsOTAPAReq
+ *
+ *    Description:   Network Initiated OTAPA session indication
+ *
+ *    Parameters:      OTAPAReqMsg* input: Request parameters
+ *
+ *    Returns:       (NONE)
+ */
+void secParsOTAPAReq(OTAPAReqMsg *req);
+
+void secParsConfReq(ConfReqMsg* req);
+void secParsDNLDReq(DownReqMsg* req);
+void secParsNextDNLDReq(void);
+void GetAuthData(kal_uint8 * authData, kal_uint32 imsi_s1, kal_uint8* digs);
+void secParsKeyReq(KeyReqMsg* req);
+void secParsKeyGenReq(KeyGenReqMsg* req);
+void secParsReAuthReq(ReAuthReqMsg* req);
+void secParsValidateReq(ValReqMsg* req);
+void secParsNextValidateReq(void);
+void secParsNextDNLDReq(void);
+void secParsNextConfReq(void);
+void secParsCommitReq(void);
+void secParsOTAReq(void);
+void secApiResponse(UimRspMsgT* MsgP, OTASP_REQ_MSG_TYPE MsgType);
+void secParsSSPRConfReq(SSPRConfReqMsg* req);
+void secParsSSPRDNLDReq(SSPRDownReqMsg* req);
+/*
+ *    DataBase interface functions
+ *    
+ */
+
+/*
+ *    Name:          dataParsConfigReq
+ *
+ *    Description:   
+ *
+ *    Parameters:      ConfReqMsg* input message, 
+ *                   ConfRspMsg* output response to input
+ *
+ *    Returns:       (NONE)
+ */
+void dataParsConfigReq(ConfReqMsg* msg, ConfRspMsg* result);
+
+/*
+ *    Name:          dataParsProtCap
+ *
+ *    Description:   
+ *
+ *    Parameters:      ProtCapRspMsg* output of the protocol capabilities
+ *                   of the mobile station
+ *
+ *    Returns:       (NONE)
+ */
+void dataParsProtCap(ProtCapRspMsg* result);
+
+/*
+ *    Name:          dataParsDownloadReq
+ *
+ *    Description:   
+ *
+ *    Parameters:      DownReqMsg* input: request parameters
+ *                   DownRspMsg* output: response parameters
+ *
+ *    Returns:       (NONE)
+ */
+void dataParsDownloadReq(DownReqMsg* msg, DownRspMsg* result);
+
+/*
+ *    Name:          dataParsSSPRConfigReq
+ *
+ *    Description:   
+ *
+ *    Parameters:      SSPRConfReqMsg* input: Request parameters
+ *                   SSPRConfRspMsg* output: Response parameters
+ *
+ *    Returns:       (NONE)
+ */
+void dataParsSSPRConfigReq(SSPRConfReqMsg* msg, SSPRConfRspMsg* result);
+
+/*
+ *    Name:          dataParsSSPRDownloadReq
+ *
+ *    Description:   
+ *
+ *    Parameters:      SSPRDownReqMsg* input: Request parameters
+ *                   SSPRDownRspMsg* output: Response parameters
+ *
+ *    Returns:       (NONE)
+ */
+void dataParsSSPRDownloadReq(SSPRDownReqMsg* msg, SSPRDownRspMsg* result);
+
+
+
+/*
+ *    Data interface to the AUTHENTICATION unit 
+ */
+
+/*
+ *    Name:          dataAuthGetPermParms
+ *
+ *    Description:   Allows access to the permanent parameters
+ *                   stored in the database
+ *
+ *    Parameters:      Output: IS95PermParms *parms
+ *
+ *    Returns:       (NONE)
+ */
+void dataAuthGetPermParms(IS95PermParms *parms);
+
+/*
+ *    Name:          dataAuthGetNAMParms
+ *
+ *    Description:   Allows access to the NAM parameters
+ *                   stored in the database
+ *
+ *    Parameters:      Output: IS95NAMParms *parms
+ *
+ *    Returns:       (NONE)
+ */
+void dataAuthGetNAMParms(IS95NAMParms *parms);
+
+/*
+ *    Name:          secSSPRListOK
+ *
+ *    Description:   Indicates whether IS683SSPRListBlock correctly populated
+ *					 and ready for use.
+ *
+ *    Parameters:    FillOK
+ *
+ *    Returns:       (NONE)
+ */
+void secSSPRListOK(kal_bool SSPRStatus);
+
+/*
+ *    Name:          secUpdateParms
+ *
+ *    Description:   Commit finished.  Refresh local Parms structs.
+ *
+ *    Parameters:    (NONE)
+ *
+ *    Returns:       (NONE)
+ */
+void secUpdateParms(void);
+
+/*
+ *   Name:          dataParsExtendedProtCap
+ *
+ *   Description:  
+ *
+ *   Parameters:    ProtCapReqMsg*          input message,
+ *                  ExtendedProtCapRspMsg*  output response
+ * 
+ *   Returns:       (NONE)
+ */
+void dataParsExtendedProtCap(ProtCapReqMsg *msg, ExtendedProtCapRspMsg *rsp);
+
+/*
+ *   Name:          otaSecGetCommitMask()
+ *
+ *   Description:   API used to retrieve CommitUpdateMask
+ * 
+ *   Parameters:    void
+ *
+ *   Returns:       kal_uint8 CommitUpdateMask
+ */
+kal_uint8 otaSecGetCommitMask(void);
+
+/*
+ *   Name:          otaSecClearCommitMask()
+ *
+ *   Description:   Commit finished, refresh local Parm structs.
+ * 
+ *   Parameters:    (NONE)
+ *
+ *   Returns:       (NONE)
+ */
+void otaSecClearCommitMask(void);
+
+/*
+ *    Acquisition Record types
+ */
+#define C_ANALOG       1   /* cellular analog */
+#define C_CDMA_SC      2   /* cellular cdma standard channels */
+#define C_CDMA_CC      3   /* cellular cdma custom channels */
+#define C_CDMA_PC      4   /* cellular cdma preferred */
+#define P_CDMA_BL      5   /* pcs cdma using blocks */
+#define P_CDMA_CH      6   /* pcs cdma using channels */
+
+
+#endif /* _OTA_SEC_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_tune.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_tune.h
new file mode 100644
index 0000000..ce3f2a8
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_tune.h
@@ -0,0 +1,301 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_tune.h
+ * Project:         IS-683A MS OTASP
+ * Original Author: MMS
+ * Creation Date:   Jan. 4th/1999
+ *
+ * Description:  IS-683A MS OTASP Tuning File
+ *
+ * Restrictions: It is intended that this file be customer-modified.
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * 220, 6815-8th Street N.E.
+ * Calgary, Alberta, Canada T2E 7H7
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ *
+ ************************************************************************/
+
+#ifndef _OTA_TUNE_H
+#define _OTA_TUNE_H 1
+
+/*
+ *    SSPR List Parameters
+ */
+/* ---------------------------------------------------------------------
+ * Name: OTA_PARS_BUFFER_SIZE
+ *
+ * Description:  Maximum number of octets that can be transmitted in any one
+ *               OTASP message by the OTASP PE.
+ *
+ * Restrictions: 1 - 64K
+ *
+ * Default Value:
+ *   256
+ *
+ */
+#define OTA_PARS_BUFFER_SIZE (256)
+
+/* ---------------------------------------------------------------------
+ * Name: OTA_MAX_SID_NID_PAIRS
+ *
+ * Description:  Maximum number of SID/NID pairs supported by OTASP PE
+ *
+ * Restrictions: 1 - 255
+ *
+ * Default Value:
+ *   1
+ *
+ */
+#define OTA_MAX_SID_NID_PAIRS 20 
+
+/* ---------------------------------------------------------------------
+ * Name: OTA_MAX_DIGITS
+ *
+ * Description:  Maximum number of digits contained in the mobile 
+ *                  origination message
+ *
+ * Restrictions: 1 - 255
+ *
+ * Default Value:
+ *   16
+ *
+ */
+#define OTA_MAX_DIGITS 16
+
+/* ---------------------------------------------------------------------
+ * Name: OTA_MAX_PARAM_SIZE
+ *
+ * Description:  Maximum number of bytes any PARAM_DATA message 
+ *                  component may contain
+ *
+ * Restrictions: 1 - 244
+ *
+ * Default Value:  
+ *   16
+ *
+ */
+#define MAX_PARAM_SIZE 255
+
+/* ---------------------------------------------------------------------
+ * Name: OTA_MAX_MDN_DIGITS
+ *
+ * Description:  Maximum number of digits contained in the mobile
+ *                  directory number
+ *
+ * Restrictions: 1 - 15
+ *
+ * Default Value:
+ *   15
+ *
+ */
+
+#ifndef OTA_MAX_MDN_DIGITS
+#define OTA_MAX_MDN_DIGITS 15
+#endif
+
+
+/* 
+ *    Protocol Capabilities
+ */
+/* ---------------------------------------------------------------------
+ * Name: NAM_DNLD_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports the downloading of 
+ *                NAM parameters
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define NAM_DNLD_SUPPORTED 1
+
+/* ---------------------------------------------------------------------
+ * Name: KEY_XCHNG_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports the exchanging of 
+ *               the A_KEY
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define KEY_XCHNG_SUPPORTED 1
+
+/* ---------------------------------------------------------------------
+ * Name: SSPR_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports System Selection for
+ *                Preferred Roaming
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define SSPR_SUPPORTED 1
+
+/* ---------------------------------------------------------------------
+ * Name: SPL_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports Service Programming Lock
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define SPL_SUPPORTED 1
+
+/* ---------------------------------------------------------------------
+ * Name: OTAPA_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports Over The Air Service
+ *                Administration
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define OTAPA_SUPPORTED 1
+
+/* ---------------------------------------------------------------------
+ * Name: ERI_SUPPORTED
+ *
+ * Description:  Indicates the mobile supports ERI feature
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#if (defined(VERIZON_EXTENSIONS))
+
+#define ERI_SUPPORTED 1
+
+#else
+
+#define ERI_SUPPORTED 0 
+
+#endif
+
+/* 
+ *    Mobile Band Mode Capabilities
+ */
+/* ---------------------------------------------------------------------
+ * Name: BAND_0_ANALOG
+ *
+ * Description:  Indicates the mobile supports Band Class 0 Analog Mode
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define BAND_0_ANALOG 1
+
+/* ---------------------------------------------------------------------
+ * Name: BAND_0_CDMA
+ *
+ * Description:  Indicates the mobile supports Band Class 0 CDMA
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define BAND_0_CDMA 1
+
+/* ---------------------------------------------------------------------
+ * Name: BAND_1_CDMA
+ *
+ * Description:  Indicates the mobile supports Band Class 1 CDMA
+ *
+ * Restrictions: 0 -- KAL_FALSE
+ *               1 -- KAL_TRUE
+ *
+ * Default Value:
+ *   KAL_TRUE -- 1
+ *
+ */
+#define BAND_1_CDMA 1
+
+
+
+#endif /* _OTA_TUNE_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/ota_uim_pars.h b/mcu/interface/protocol/as_c2k/1xrtt/ota_uim_pars.h
new file mode 100644
index 0000000..33decac
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/ota_uim_pars.h
@@ -0,0 +1,403 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       ota_uim_pars.h
+ * Project:         OTASP
+ *
+ * Description:     Declaration of functions used for the interface
+ *                  between DLI and OTASP engine for UIM
+ *
+ *************************************************************************/
+#ifndef _OTA_PARS_UIM_H
+#define _OTA_PARS_UIM_H   1
+
+/*
+ *    Dependencies
+ */
+#include "ota_api.h"
+#include "ota_msgs.h"    /* message structure definitions */
+
+/*
+ *    ResultCode: Result code to send in any OTASP response
+ */
+/* 
+IS-683-C 3.5.1.2 Download Response Message RESULT_CODE :
+'00000000' Accepted - Operation successful
+'00000001' Rejected - Unknown reason
+'00000010' Rejected - Data size mismatch
+'00000011' Rejected - Protocol version mismatch
+'00000100' Rejected - Invalid parameter
+'00000101' Rejected - SID/NID length mismatch
+'00000110' Rejected - Message not expected in this mode
+'00000111' Rejected - BLOCK_ID value not supported
+'00001000' Rejected - Preferred roaming list length mismatch
+'00001001' Rejected - CRC error
+'00001010' Rejected - Mobile station locked
+'00001011' Rejected - Invalid SPC
+'00001100' Rejected - SPC change denied by the user
+'00001101' Rejected - Invalid SPASM
+'00001110' Rejected - BLOCK_ID not expected in this mode
+'00001111' Rejected - User Zone already in PUZL
+'00010000' Rejected - User Zone not in PUZL
+'00010001' Rejected - No entries in PUZL
+'00010010' Rejected - Operation Mode mismatch
+'00010011' Rejected - SimpleIP MAX_NUM_NAI mismatch
+'00010100' Rejected - SimpleIP MAX_NAI_LENGTH mismatch
+'00010101' Rejected - MobileIP MAX_NUM_NAI mismatch
+'00010110' Rejected - MobileIP MAX_NAI_LENGTH mismatch
+'00010111' Rejected - SimpleIP PAP MAX_SS_LENGTH mismatch
+'00011000' Rejected - SmpleIP CHAP MAX_SS_LENGTH mismatch
+'00011001' Rejected - MobileIP MAX_MN-AAA_SS_LENGTH mismatch
+'00011010' Rejected - MobileIP MAX_MN-HA_SS_LENGTH mismatch
+'00011011' Rejected - MobileIP MNAAA_AUTH_ALGORITHM mismatch
+'00011100' Rejected - MobileIP MNHA_AUTH_ALGORITHM mismatch
+'00011101' Rejected - SimpleIP ACT_NAI_ENTRY_INDEX mismatch
+'00011110' Rejected - MobileIP ACT_NAI_ENTRY_INDEX mismatch
+'00011111' Rejected - SimpleIP PAP NAI_ENTRY_INDEX mismatch
+'00100000' Rejected - SimpleIP CHAP NAI_ENTRY_INDEX mismatch
+'00100001' Rejected - MobileIP NAI_ENTRY_INDEX mismatch
+'00100010' Rejected - Unexpected PRL_BLOCK_ID change
+'00100011' Rejected - PRL format mismatch
+'00100100' ~ '01111111' Reserved for future standardization
+'10000000' ~ '11111110' Available for manufacturer-specific Result Code definitions
+'11111111' Reserved
+*/
+typedef enum {
+    PARS_RC_ACCEPTED,
+    PARS_RC_UNKNOWN,
+    PARS_RC_DATA_SIZE_MISMATCH,
+    PARS_RC_PROTOCOL_VERSION_MISMATCH,
+    PARS_RC_INVALID_PARAMETER,
+    PARS_RC_SIDNID_LENGTH_MISMATCH,
+    PARS_RC_MSG_NOT_EXPECTED_IN_THIS_MODE,
+    PARS_RC_BLOCK_ID_NOT_SUPPORTED,
+    PARS_RC_PR_LIST_LENGTH_MISMATCH,
+    PARS_RC_CRC_ERROR,
+    PARS_RC_MOBILE_STATION_LOCKED,
+    PARS_RC_INVALID_SPC,
+    PARS_RC_SPC_CHANGE_DENIED_BY_USER,
+    PARS_RC_INVALID_SPASM,
+    PARS_RC_BLOCK_ID_NOT_EXPECTED_IN_THIS_MODE,
+    PARS_RC_USER_ZONE_ALREAY_IN_PUZL,
+    PARS_RC_USER_ZONE_NOT_IN_PUZL,
+    PARS_RC_NO_ENTRIES_IN_PUZL,
+    PARS_RC_OPERATION_MODE_MISMATCH,
+    PARS_RC_SIP_MAX_NUM_NAI_MISMATCH,
+    PARS_RC_SIP_MAX_NAI_LEN_MISMATCH,               /*  0x14  */
+    PARS_RC_MIP_MAX_NUM_NAI_MISMATCH,
+    PARS_RC_MIP_MAX_NAI_LEN_MISMATCH,
+    PARS_RC_SIP_PAP_MAX_SS_LEN_MISMATCH,
+    PARS_RC_SIP_CHAP_MAX_SS_LEN_MATCH,
+    PARS_RC_MIP_MAX_MN_AAA_SS_LEN_MISMATCH,
+    PARS_RC_MIP_MAX_MN_HA_SS_LEN_MISMATCH,
+    PARS_RC_MIP_MN_AAA_AUTH_ALG_MISMATCH,
+    PARS_RC_MIP_HA_AAA_AUTH_ALG_MISMATCH,
+    PARS_RC_SIP_ACT_NAI_ENTRY_INDEX_MISMATCH,
+    PARS_RC_MIP_ACT_NAI_ENTRY_INDEX_MISMATCH,       /*  0x1E  */
+    PARS_RC_SIP_PAP_NAI_ENTRY_INDEX_MISMATCH,
+    PARS_RC_SIP_CHAP_NAI_ENTRY_INDEX_MISMATCH,
+    PARS_RC_MIP_NAI_ENTRY_INDEX_MISMATCH,
+    PARS_RC_UNEXPECTED_PRL_BLOCK_ID_CHANGE,
+    PARS_RC_PRL_FORMAT_MISMATCH,
+    PARS_RC_HRPD_ACCESS_AUTH_MAX_NAI_LEN_MISMATCH,
+    PARS_RC_HRPD_ACCESS_AUTH_CHAP_MAX_SS_LEN_MISMATCH,
+    PARS_RC_MMD_MAX_NUM_IMPU_MISMATCH,
+    PARS_RC_MMD_MAX_IMPU_LEN_MISMATCH,
+    PARS_RC_MMD_MAX_NUM_P_CSCF_MISMATCH,            /*  0x28  */
+    PARS_RC_MMD_MAX_P_CSCF_LEN_MISMATCH,
+    PARS_RC_NUM_MMS_URI_MISMATCH,
+    PARS_RC_MMS_URI_MISMATCH,
+    PARS_RC_MMS_URI_LEN_MISMATCH,
+    PARS_RC_INVALID_MMS_URI
+} ResultCodes;
+
+/*
+ *    ValBlockIds: BLOCK_IDs that pertain to the Validate message.
+ *                 use ADD_BLOCK to assemble a list of these IDs.
+ */
+typedef enum {
+    VERIFY_SPC_BLOCK=0,
+    CHANGE_SPC_BLOCK,
+    VALIDATE_SPASM_BLOCK,
+    VAL_BLOCK_MAX
+} ValBlockIds;
+
+/*
+ *   ParsBlockIds: BLOCK_IDs that pertian to Config/Dnld Req/Resp messages
+ *                 Use ADD_BLOCK to assemble list.
+ */ 
+typedef enum {
+    OTA_CDMA_ANALOG_NAM_BLOCK,
+    OTA_MDN_BLOCK,
+    OTA_CDMA_NAM_BLOCK,
+    OTA_IMSI_T_BLOCK,
+    PARS_MAX_BLOCKS
+} ParsBlockIds;
+
+/*
+ *   ParsSSPRBlockIds; BLOCK_IDs for the SSPR Conf Req/Resp. Use ADD_BLOCK
+ *   to make a list. The SSPR Dnld. only supports one BLOCK_ID
+ *   (RoamingList)
+ *   which is defined separately. The IS683A spec COULD have re-used the
+ *   BLOCK_IDs to simplify this.
+ */
+typedef enum {
+   OTA_SSPR_PR_DNLD = 0,
+   OTA_SSPR_DIM=0,
+   OTA_SSPR_PR,
+   PARS_MAX_SSPR_BLOCKS
+} ParsSSPRBlockIds;
+
+
+/*
+ *   ParsBlockSize (in bits)
+ */
+#define OTA_CDMA_NAM_BLOCK_SIZE(N) (1+3+10+7+34+4+1+1+1+1+8+((N)*(15+16)))
+#define OTA_CDMA_ANALOG_NAM_BLOCK_SIZE(N) (11+15+1+OTA_CDMA_NAM_BLOCK_SIZE((N)))
+#define OTA_MDN_BLOCK_SIZE(N) (4+((N)*4))
+#define OTA_IMSI_T_BLOCK_SIZE (4+10+7+24)
+
+#define BITS_TO_BYTES(X) (((X)/8) + (((X)%8) ? 1:0))
+
+/*
+ *    ADD_BLOCK/REMOVE_BLOCK: Add and remove a BLOCK_ID from a list (kal_uint32)
+ */
+#define ADD_BLOCK(list,block_id) (list |= (1<<block_id))
+#define REMOVE_BLOCK(list,block_id) (list &= ~(1<<block_id))
+#define IS_PRESENT(list,block_id) ((list>>block_id) & 0x01)
+
+#define OTA_QUEUE_SIZE 10
+
+/*
+ *    Name:          parsApiInitialize
+ *
+ *    Description:   Initialize the parser.
+ *
+ *    Parameters:    (none)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void parsApiInitialize(void);
+
+/*
+ *    Name:          parsSecParserLockOut
+ *
+ *    Description:   Indicates the base station has exceeded its limit
+ *                   of validation failures
+ *    
+ *    Parameters:    (nothing)
+ *    
+ *    Returns:       (nothing)
+ *
+ */
+void parsSecParserLockOut(void);
+
+/*
+ *    Parser to Authentication Response Functions
+ */
+
+/*
+ *    Name:          parsAuthKeyRspUim
+ *
+ *    Description:   Function called by the Authenticator to indicate
+ *                   the completion of the key request.
+ *
+ *    Parameters:    *KeyRspMsg -- Pointer to a KeyRspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsAuthKeyRspUim(KeyRspMsg* rsp);
+void parsAuthKeyRsp(KeyRspMsg* rsp);
+
+/*
+ *    Name:          parsAuthKeyGenRspUim
+ *
+ *    Description:   Function called by the Authenticator to indicate
+ *                   the completion of the key generation request.
+ *
+ *    Parameters:    *KeyGenRspMsg -- Pointer to a KeyGenRspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsAuthKeyGenRspUim(KeyGenRspMsg* rsp);
+void parsAuthKeyGenRsp(KeyGenRspMsg* rsp);
+
+/*
+ *    Name:          parsAuthReAuthRspUim
+ *
+ *    Description:   Function called by the Authenticator to indicate
+ *                   the completion of the re-authentication process
+ *
+ *    Parameters:    *ReAuthRspMsg -- Pointer to a ReAuthRspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsAuthReAuthRspUim(ReAuthRspMsg* rsp);
+void parsAuthReAuthRsp(ReAuthRspMsg* rsp);
+
+/*
+ *    Parser to Security response functions 
+ */
+
+/*
+ *    Name:          parsSecOTAPARspUim
+ *
+ *    Description:   Function called by the security to indicate
+ *                   the completion of the OTAPA request and to 
+ *                   indicate the security state change to NETWORK 
+ *
+ *    Parameters:    *OTAPARspMsg -- Pointer to a OTAPARspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsSecOTAPARspUim(OTAPARspMsg* rsp);
+void parsSecOTAPARsp(OTAPARspMsg* rsp);
+
+/*
+ *    Name:          parsSecValRsp
+ *
+ *    Description:   Function called by security to indicate the 
+ *                   response to a base station validation request
+ *
+ *    Parameters:    *ValRspMsg -- Pointer to a ValRspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsSecValRsp(ValRspMsg* rsp);
+void parsSecConfRsp(ConfRspMsg* rsp);
+void parsSecSSPRConfRsp(SSPRConfRspMsg* rsp);
+void parsSecDownRsp(DownRspMsg* rsp);
+void parsSecSSPRDownRsp(SSPRDownRspMsg* rsp);
+
+/*
+ *    Name:          parsSecCommitRsp
+ *
+ *    Description:   Function called by security to indicate the 
+ *                   response to a base station commit request
+ *
+ *    Parameters:    *CommitRspMsg -- Pointer to a CommitRspMsg struct
+ *
+ *    Returns:       (NONE)
+ *
+ */
+void parsSecCommitRsp(CommitRspMsg* rsp);
+
+/*
+ *    API to Parser Functions
+ */
+
+/*
+ *    Name:          parsApiInSvcInd
+ *
+ *    Description:   Indicates the DLI (CPE) is in the correct state
+ *                   for processing OTASP messages
+ *
+ *    Parameters:    (nothing)
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void parsApiInSvcInd(kal_bool insvc);
+
+/*
+ *    Name:          parsApiMsgConfirm
+ *
+ *    Description:   Confirms delivery of the message sent to the 
+ *                   DLI
+ *
+ *    Parameters:    kal_bool success - KAL_TRUE, message delivered ok
+ *                                    KAL_FALSE, message not delivered to base
+ *                                    station
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void parsApiMsgConfirm(kal_bool success);
+
+/*
+ *    Name:          parsApiRcvMsgInd
+ *
+ *    Description:   Indicates arrival of an OTASP message from the base
+ *                     station.
+ *
+ *    Parameters:    data - pointer to octets of OTASP message
+ *                     len - # of octets in message
+ *
+ *    Returns:       (nothing)
+ *
+ */
+void parsApiRcvMsgInd(kal_uint8 *data, kal_uint16 len);
+
+/*
+ *    Name:          parsApiReleaseReq
+ *
+ *    Description:   User initiated release of OTASP process
+ *
+ *    Parameters:    kal_uint8 reason; Reason for disconnect
+ *
+ *    Returns:       (none)
+ *
+ */
+void parsApiReleaseReq(kal_uint8 reason);
+
+/*
+ *   Name:          parsApiGetUimAKeyGenerated
+ *
+ *   Description:   For UIM, return whether AKey has been generated during OTA session.
+ * 
+ *   Parameters:    void
+ *
+ *   Returns:       kal_bool UimAKeyGenerated
+ * 
+ */
+kal_bool parsApiGetUimAKeyGenerated(void);
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pch_msg.h b/mcu/interface/protocol/as_c2k/1xrtt/pch_msg.h
new file mode 100644
index 0000000..d501830
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pch_msg.h
@@ -0,0 +1,1591 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     pch_msg.h
+ *
+ * Purpose:    Header file Containing structures for Page Channel
+ *             Messages.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.7 $
+ *    $Author: hans $
+ *
+ *       $Log: pch_msg.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 18 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	Fix HSC code release build error and 1xRTT OTA message parse
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *
+ *       12 15 2016 sue.zhong
+ *       [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ *       c2k source
+ *       Revision 1.7  2005/03/18 11:45:06  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.6  2005/02/03 13:29:20  dstecker
+ *       Changed rlgainCommonPilot to signed in BcchEAPM
+ *       Revision 1.5  2004/06/21 17:24:12  dstecker
+ *       UNLM message corrections
+ *       Revision 1.4  2004/04/23 10:51:07  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.3.1.3  2004/04/19 16:21:40  asharma
+ *       Revision 1.3.1.2  2004/04/14 15:20:51  asharma
+ *       Revision 1.3  2004/04/06 14:02:18  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:40  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:19:53  bcolford
+ *       Update for merge.
+ *       Revision 1.16  2003/05/21 17:12:40  byang
+ *       CR#570: Replace compiler flag with IS2000A with IS2000_REV_0.
+ *       Revision 1.15  2002/12/27 11:24:00  hans
+ *       Bugfix to Label:CP_PS_1.73.0_LAYER2_FixCR570
+ *       Revision 1.14  2002/12/20 11:04:22  byang
+ *       CR#570: Compiled out IS2000 Rev. A data tyeps with IS2000_REV_A.
+ *       Revision 1.13  2002/10/23 13:47:35  dstecker
+ *       Corrected mask used to find add and drop intercept sign bit
+ *       Revision 1.12  2002/07/15 13:14:41  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.11  2002/06/06 13:14:04  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.10  2002/04/11 10:12:08  byang
+ *       CR 586: Modify data type for cdmaFreq[ MAX_CDMA_FREQ ]
+ *       in PChECCLM from kal_uint8 to kal_uint16.
+ *       Revision 1.9  2002/02/14 16:17:54  byang
+ *       CR 443: Add an invalid entry for QpchTransPwr type to be used
+ *       when the network does not include qpchPowerLevelConfig in the
+ *       ESPM.
+ *       Revision 1.8  2002/01/17 17:31:21  akayvan
+ *       Implemented Slotted Mode mods.
+ *       Revision 1.7  2001/10/29 13:55:45  byang
+ *       Sign extend the two's complement value for rlgainTrafficPilot in ESPM.
+ *       Revision 1.6  2001/10/29 09:48:27  mclee
+ *       Modified code to enforce kal_bool to strictly enum type KAL_TRUE or KAL_FALSE
+ *       Revision 1.5  2001/10/24 10:23:38  byang
+ *       Changed 2 occurances of rlgainAdj data type from kal_uint8 to
+ *       kal_int8.
+ *       Revision 1.4  2001/07/18 15:13:49  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.3  2001/04/27 16:29:53  byang
+ *       Update processing of EGSRM & ECCLM for IS-2000 Rev.0.
+ *       Revision 1.2  2001/04/06 11:03:41  byang
+ *       Fixed extractEnhTCExtAssignment() and made cpExtractPilotRec() a public utility function.
+ *       Revision 1.1.1.2  2001/04/05 16:19:21  byang
+ *       Made utility function cpExtractPilotRec() into public.
+ *       Revision 1.1.1.1  2001/01/17 10:59:11  byang
+ *       Duplicate revision
+ *       Revision 1.1  2001/01/17 10:59:11  plabarbe
+ *       Initial revision
+ *       Revision 1.4  2000/12/22 10:23:39  byang
+ *       Cosmetic cleanup.
+ *       Revision 1.3  2000/12/05 17:45:24  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:27:05  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:23Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:10:10Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.19  2000/03/01 01:37:18  scotvold
+ *       CC Overhead Backward Compatibility.
+ *
+ *       Revision 1.18  1999/10/19 23:59:05  gfrye
+ *       Added defines for two page messages that were made obsolete in IS-95B.
+ *
+ *       Revision 1.17  1999/07/01 18:12:32  mhayduk
+ *       Moved periodic registration defines into header file for
+ *       global accessibility.
+ *
+ *       Revision 1.16  1999/06/11 03:39:23  mhayduk
+ *       Set max neighbor set to use N8m as defined in pilots.h.
+ *
+ *       Revision 1.15  1999/06/02 21:36:53  mhayduk
+ *       Renamed MAX_CDMA_PCH_ON_BASE to MAX_CDMA_FREQ_PER_BAND and
+ *       updated value from 8 to 10.
+ *
+ *       Revision 1.14  1999/05/19 17:03:19  mhayduk
+ *       Updated parsing of Extended System Parameters message for T53
+ *       MSD operation.
+ *
+ *       Revision 1.13  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.12  1999/02/08 22:55:04  scotvold
+ *       Added common FORInfoData structure.
+ *
+ *       Revision 1.11  1999/01/20 19:41:43  mhayduk
+ *       Updated broadcast message prototype.
+ *
+ *       Revision 1.10  1998/12/01 21:34:24  mhayduk
+ *       Added null message type.
+ *
+ *       Revision 1.9  1998/11/24 05:40:36  mhayduk
+ *       Cleaned up definitions for checking of TMSI Zone length -
+ *       max zone size is 8.
+ *
+ *       Revision 1.8  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.7  1998/08/28 21:47:40  mhayduk
+ *       Changed add/drop intercepts so they are signed quantities.
+ *
+ *       Revision 1.6  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.5  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.4  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _PCH_MSG_H_
+
+  #define _PCH_MSG_H_ 1
+
+/****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pilots.h"
+#include "ho_cc.h"
+#include "systime.h"
+#include "status.h"
+#include "layer2.h"
+#include "Msg_defn.h"
+
+/****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+  /* REG_PRD range values */
+  #define CP_REG_PRD_MIN        29
+  #define CP_REG_PRD_MAX        85
+
+  #define CP_BASE_LAT_BIT_SET   0x200000L       /* bit mask to detect 22nd bit */
+  #define CP_BASE_LONG_BIT_SET  0x400000L       /* bit mask to detect 23rd bit */
+  #define CP_INTERCEPT_BIT_SET  0x20            /* bit mask to detect 6th bit */
+
+  #define MAX_CDMA_FREQ_PER_BAND 10             /* max number of frequencies from */
+                                                /* CDMA channel list */
+  #define MAX_ADDR_LEN           12             /* see table 7.7.2.3.1-1        */
+  #define CP_MAX_EXT_ASSIGN_TRAFFIC_PILOTS 6    /* max TC pilots in Ext. Ch Ass */
+  #define CP_MAX_EXT_ASSIGN_PAGING_PILOTS 20    /* max PCH pilots in Ext. Ch Ass*/
+  #define CP_MAX_ASSIGN_PAGING_PILOTS 6         /* max PCH pilots in Ch Assign */
+  #define CP_MAX_REDIRECT_CHANS  15             /* max redirect chans in svc rediret */
+
+  /* Additional record length specifications */
+  #define MAX_ORDER_ADD_RECORD_LEN    7
+  #define MAX_BURST_DATA              1         /* not supported yet */
+  
+  #define CP_MAX_VALID_PAGE_MESSAGE          63
+  #define CP_NULL_MESSAGE                    0
+
+typedef enum
+{
+    FCCCH_RATE_9600BPS_20MS_FS = 0,
+    FCCCH_RATE_19200BPS_20MS_FS = 1,
+    FCCCH_RATE_19200BPS_10MS_FS = 2,
+    FCCCH_RATE_38400BPS_20MS_FS = 3,
+    FCCCH_RATE_38400BPS_10MS_FS = 4,
+    FCCCH_RATE_38400BPS_5MS_FS = 5
+} FccchRate;
+
+
+typedef enum
+{
+    QPCH_POWER_INVALID = -1,
+    QPCH_POWER_5DB_BELOW_PILOT = 0,
+    QPCH_POWER_4DB_BELOW_PILOT = 1,
+    QPCH_POWER_3DB_BELOW_PILOT = 2,
+    QPCH_POWER_2DB_BELOW_PILOT = 3,
+    QPCH_POWER_1DB_BELOW_PILOT = 4,
+    QPCH_POWER_SAME_AS_PILOT   = 5,
+    QPCH_POWER_1DB_ABOVE_PILOT = 6,
+    QPCH_POWER_2DB_ABOVE_PILOT = 7
+} QpchTransPwr;
+
+/****************************************************************************
+ * Page Channel message structures
+ ****************************************************************************/
+
+  /* Common field structure for Page Channel Messages */
+  /****************************************************/
+  typedef struct
+  {
+    kal_uint8  ackSeq;
+    kal_uint8  msgSeq;
+    kal_bool  ackReq;
+    kal_bool  validAck;
+    kal_uint8  addrType;
+    kal_uint8  addrLen;
+    kal_uint8  address[ MAX_ADDR_LEN ];   /* variable length field whose length */
+                                     /* is defined in addr_len, addr_len   */
+                                     /* sizes come from table 7.7.2.3.1-1  */
+  } PChCommonFlds;
+
+
+  /* FAKE QPCH Message used for Spy purpose only */
+  /***********************************************/
+  typedef PACKED_PREFIX struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8  qpchRate;
+    kal_uint8  PI;
+    kal_uint16  Position;
+    kal_uint8  Status;
+    kal_uint8  Padding[4];
+  } PACKED_POSTFIX  QPChPiParametersOvhdSpy;
+
+
+  /* System Parameters Message (SPM) */
+  /*****************************/
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8  configMsgSeq;
+    kal_uint16  sid;
+    kal_uint16  nid;
+    kal_uint16  regZone;
+    kal_uint8  totalZones;
+    kal_uint8  zoneTimer;
+    kal_bool  multSids;
+    kal_bool  multNids;
+    kal_uint16  baseId;
+    kal_uint8  baseClass;
+    kal_uint8  pageChan;
+    kal_uint8  maxSlotCycleIndex;
+    kal_bool  homeReg;
+    kal_bool  forSidReg;
+    kal_bool  forNidReg;
+    kal_bool  powerUpReg;
+    kal_bool  powerDownReg;
+    kal_bool  parameterReg;
+    kal_uint8  regPrd;
+    kal_int32  baseLat;
+    kal_int32  baseLong;
+    kal_uint16  regDist;
+    kal_uint8  srchWinA;
+    kal_uint8  srchWinN;
+    kal_uint8  srchWinR;
+    kal_uint8  nghbrMaxAge;
+    kal_uint8  pwrRepThresh;
+    kal_uint8  pwrRepFrames;
+    kal_bool  pwrThreshEnable;
+    kal_bool  pwrPeriodEnable;
+    kal_uint8  pwrRepDelay;
+    kal_bool  rescan;
+    kal_uint8  tAdd;
+    kal_uint8  tDrop;
+    kal_uint8  tComp;
+    kal_uint8  tTdrop;
+    kal_bool  extSysParameter;
+    kal_bool  extNghbrList;
+    kal_bool  genNghbrList;
+    kal_bool  globalRedirect;
+
+    /* fields in IS-2000 */
+    kal_bool  priNghbrList;
+    kal_bool  userZoneId;
+    kal_bool  extGlobalRedirect;
+    kal_bool  extChanList;
+    kal_bool  TTdropRangeIncl;
+    kal_uint8  TTdropRange;
+
+    /* fields in Rev E */
+    kal_bool  negSciSupported;
+    kal_bool  extRcBitmapAllowed;
+    kal_bool  CRRMSupported;
+    kal_bool  accessPointPilotInfo;
+    kal_bool  accessPointIdt;
+    kal_bool  accessPointIdText;
+    kal_bool  generalOverheadInfo;
+    kal_bool  flexDuplexCdmaChanList;
+    kal_bool  altTechInfo;
+    kal_bool  frequentGenOvhdInfo;
+    kal_uint8  APPIMPeriodIndex;
+    kal_uint8  GenOvhdCycleIndex;
+    kal_uint8 ATIMCycleIndex;
+    kal_bool  AddLocInfoIncl;
+    kal_uint8  LocUncH;
+    kal_uint16  LocHeight;
+    kal_uint8  LocUncV;
+    kal_bool  addLocGemAllowed;
+  } PChSystemParameters;
+
+  /* Access Parameters Message (APM) */
+  /*****************************/
+
+#define CP_MAX_NUM_ACCT_SO       16
+#define CP_MAX_NUM_ACCT_SO_GRP    8
+
+  typedef struct
+  {
+    kal_uint8   AcctAocBitmap1;
+    kal_uint16   AcctSo;
+  } APMAcctSo;
+
+  typedef struct
+  {
+    kal_uint8   AcctAocBitmap2;
+    kal_uint8   AcctSoGrp;
+  } APMAcctSoGrp;
+
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8  accMsgSeq;
+    kal_uint8  accChan;
+    kal_int8  nomPwr;
+    kal_int8  initPwr;
+    kal_uint8  pwrStep;
+    kal_uint8  numStep;
+    kal_uint8  maxCapSz;
+    kal_uint8  pamSz;
+    kal_uint8  psist_0_9;
+    kal_uint8  psist_10;
+    kal_uint8  psist_11;
+    kal_uint8  psist_12;
+    kal_uint8  psist_13;
+    kal_uint8  psist_14;
+    kal_uint8  psist_15;
+    kal_uint8  msgPsist;
+    kal_uint8  regPsist;
+    kal_uint8  probePnRan;
+    kal_uint8  accTmo;
+    kal_uint8  probeBkoff;
+    kal_uint8  bkoff;
+    kal_uint8  maxReqSeq;
+    kal_uint8  maxRspSeq;
+    kal_uint8  auth;
+    kal_uint32 rand;
+    kal_bool  nomPwrExt;
+    kal_bool  psistEmgIncl;
+    kal_uint8  psistEmg;
+   kal_bool  AcctIncl;
+   kal_bool  AcctInclEmg;
+   kal_bool  AcctAocBitmapIncl;
+   kal_bool  AcctSoIncl;
+   kal_uint8  NumAcctSo;
+   APMAcctSo   AcctSo[ CP_MAX_NUM_ACCT_SO ];
+   kal_bool  AcctSoGrpIncl;
+   kal_uint8  NumAcctSoGrp;
+   APMAcctSoGrp   AcctSoGrp[ CP_MAX_NUM_ACCT_SO_GRP ];
+
+  } PChAccessParameters;
+
+  /* Neighbor List Message */
+  /*************************/
+
+  typedef struct
+  {
+   kal_uint8 nghbrConfig;
+   kal_uint16 nghbrPN;
+  } PChNghbrRecord;
+
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8  configMsgSeq;
+    kal_uint8  pilotInc;
+    PChNghbrRecord  nghbrList[ CP_MAX_NEIGHBOR_SET ];
+  } PChNghbrList;
+
+  /* CDMA Channel List Message */
+  /*****************************/
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    kal_uint8  configMsgSeq;
+    kal_uint8  numCdmaFreq;
+    kal_uint16  cdmaFreq[ MAX_CDMA_FREQ_PER_BAND];
+  } PChChannelList;
+
+  /* (Extended) Channel Assignment Message */
+  /*****************************************/
+
+  /* The following structures define the ASSIGN_MODE info elements in */
+  /* the CDMA Channel Assignment Message */
+
+  /* ASSIGN_MODE 000 - TC Assignment (Band Class 0 Only) */
+  typedef struct
+    {
+      kal_bool freqIncl;
+      kal_uint8 codeChan;
+      kal_uint16 cdmaFreq;
+      kal_uint8 frameOffset;
+      kal_uint8 encryptMode;
+      kal_uint8 dSigEncryptMode;
+      kal_uint8 encKeySize;
+      kal_bool cSigEncryptModeIncl;
+      kal_uint8 cSigEncryptMode;
+    } PChAssignMode000;
+
+
+  /* ASSIGN_MODE 010 - Acquire Analog System */
+  typedef struct
+    {
+      kal_bool respond;
+      kal_bool analogSys;
+      kal_bool useAnalogSys;
+      SysCdmaBandT bandClass;
+    } PChAssignMode010;
+
+  /* ASSIGN_MODE 011 - Analog Voice Channel Assignment */
+  typedef struct
+    {
+      kal_uint16 sid;
+      kal_uint8 vmac;
+      kal_uint16 analogChan;
+      kal_uint8 scc;
+      kal_bool mem;
+      kal_uint8 anChanType;
+      kal_bool dsccMsb;
+      SysCdmaBandT bandClass;
+    } PChAssignMode011;
+
+  /* ASSIGN_MODE 100 - Extended Traffic Channel Assignment */
+  typedef struct
+    {
+      kal_bool freqIncl;
+      kal_bool bypassAlertAnswer;     /*SNR 7/18/00 added to comply with IS95B */
+      kal_uint8 defaultConfig;
+      kal_uint8 grantedMode;
+      kal_uint8 srIdRestore;
+      kal_uint8 codeChan;
+      kal_uint8 frameOffset;
+      kal_uint8 encryptMode;
+      SysCdmaBandT bandClass;
+      kal_uint16 cdmaFreq;
+      kal_uint8 dSigEncryptMode;
+      kal_uint8 encKeySize;
+      kal_bool cSigEncryptModeIncl;
+      kal_uint8 cSigEncryptMode;
+    } PChAssignMode100;
+
+
+  /* Following are structures to support the Extended Channel Assignment */
+
+  /* ASSIGN_MODE 000 - Traffic Channel Assignment */
+  typedef struct
+  {
+    kal_bool freqIncl;
+    kal_uint8 defaultConfig;
+    kal_bool bypassAlertAnswer;     /*SNR 7/18/00 added to comply with IS95B */
+    kal_uint8 numPilots;
+    kal_uint8 grantedMode;
+    kal_uint8 frameOffset;
+    kal_uint8 encryptMode;
+    SysCdmaBandT bandClass;
+    kal_uint16 cdmaFreq;
+    ActiveInitPilot base[ CP_MAX_EXT_ASSIGN_TRAFFIC_PILOTS ];   /* 6 */
+    kal_uint8 forFchRc;
+    kal_uint8 revFchRc;
+    kal_uint8 fpcFchInitSetpt;
+    kal_uint8 fpcSubchanGain;
+    kal_int8 rlgainAdj;
+    kal_uint8 fpcFchFer;
+    kal_uint8 fpcFchMinSetpt;
+    kal_uint8 fpcFchMaxSetpt;
+    kal_bool revFchGatingMode;
+    kal_bool revPwrCntlDelayIncl;
+    kal_uint8 revPwrCntlDelay;
+    kal_uint8 dSigEncryptMode;
+    kal_uint8 encKeySize;
+    kal_bool cSigEncryptModeIncl;
+    kal_uint8 cSigEncryptMode;
+    kal_bool            msgIntInfoIncl;
+    kal_bool            changeKeys;
+    kal_bool            useUak;
+    kal_bool            plcmTypeIncl;
+    kal_uint8            plcmType;
+    kal_uint8            plcm39[PLCM39_SIZE];
+  } PChExtAssignMode000;
+
+  /* ASSIGN_MODE 100 - Enhanced Traffic Channel Assignment */
+    typedef struct
+    {
+        kal_uint16                pilotPn;
+        kal_bool                addPilotRecIncl;
+        PilotRecType        pilotRecType;
+        kal_uint8                recordLen;
+        HONghbrPilotRec     rec;
+        kal_bool                pwrCombInd;
+        kal_uint16                codeChanFch;
+        kal_uint8                qofMaskIdFch;
+    }  FcschExtAssignPilotRec01;
+
+    typedef struct
+    {
+        kal_bool        threeXFchLowIncl;
+        kal_uint8        qofMaskIdFchLow;
+        kal_uint16        codeChanFchLow;
+        kal_bool        threeXFchHighIncl;
+        kal_uint8        qofMaskIdFchHigh;
+        kal_uint16        codeChanFchHigh;
+    }  FcschExtAssign3XFchInfo;
+
+#define CP_MAX_NUM_PILOTS 8
+
+    typedef struct
+    {
+        kal_uint8                        fpcFchInitSetpt;
+        kal_uint8                        fpcFchFer;
+        kal_uint8                        fpcFchMinSetpt;
+        kal_uint8                        fpcFchMaxSetpt;
+        FcschExtAssignPilotRec01    pilot[ CP_MAX_NUM_PILOTS ];
+        kal_bool                        threeXFchInfoIncl;
+        FcschExtAssign3XFchInfo     threeXFch[ CP_MAX_NUM_PILOTS ];
+    } FcschExtAssignChInd01;
+
+    typedef struct
+    {
+        kal_uint16                pilotPn;
+        kal_bool                addPilotRecIncl;
+        PilotRecType        pilotRecType;
+        kal_uint8                recordLen;
+        HONghbrPilotRec     rec;
+        kal_bool                pwrCombInd;
+        kal_uint16                codeChanDcch;
+        kal_uint8                qofMaskIdDcch;
+    }  FcschExtAssignPilotRec10;
+
+    typedef struct
+    {
+        kal_bool        threeXDcchLowIncl;
+        kal_uint8        qofMaskIdDcchLow;
+        kal_uint16        codeChanDcchLow;
+        kal_bool        threeXDcchHighIncl;
+        kal_uint8        qofMaskIdDcchHigh;
+        kal_uint16        codeChanDcchHigh;
+    }  FcschExtAssign3XDcchInfo;
+
+    typedef struct
+    {
+        kal_uint8                        fpcDcchInitSetpt;
+        kal_uint8                        fpcDcchFer;
+        kal_uint8                        fpcDcchMinSetpt;
+        kal_uint8                        fpcDcchMaxSetpt;
+        FcschExtAssignPilotRec10    pilot[ CP_MAX_NUM_PILOTS ];
+        kal_bool                        threeXDcchInfoIncl;
+        FcschExtAssign3XDcchInfo    threeXDcch[ CP_MAX_NUM_PILOTS ];
+    } FcschExtAssignChInd10;
+
+    typedef struct
+    {
+        kal_uint16                pilotPn;
+        kal_bool                addPilotRecIncl;
+        PilotRecType        pilotRecType;
+        kal_uint8                recordLen;
+        HONghbrPilotRec     rec;
+        kal_bool                pwrCombInd;
+        kal_uint16                codeChanFch;
+        kal_uint8                qofMaskIdFch;
+        kal_uint16                codeChanDcch;
+        kal_uint8                qofMaskIdDcch;
+    }  FcschExtAssignPilotRec11;
+
+    typedef struct
+    {
+        kal_uint16                pilotPn;
+        kal_bool                addPilotRecIncl;
+        PilotRecType        pilotRecType;
+        kal_uint8                recordLen;
+        HONghbrPilotRec     rec;
+        kal_bool                forPdchIncl;
+      kal_uint8                walshTableId;
+      kal_uint8                numPdcch;
+        kal_uint8                forPdcchWalsh [ CP_MAX_PDCCH_CH ];
+        kal_uint8                macId;
+        kal_uint8                revCqichCover;
+      kal_uint8                forCpcchWalsh;
+      kal_uint8                forCpcsch;
+      kal_bool                pwrCombInd;
+      kal_bool                pdchGroupInd;
+      kal_uint16                codeChanFch;
+      kal_uint8                qofMaskIdFch;
+      kal_uint16                codeChanDcch;
+      kal_uint8                qofMaskIdDcch;
+    }  FcschExtAssignPilotRec101;
+
+    typedef struct
+    {
+        kal_uint8                        fpcFchInitSetpt;
+        kal_uint8                        fpcDcchInitSetpt;
+        kal_bool                        fpcPriChan;
+        kal_uint8                        fpcFchFer;
+        kal_uint8                        fpcFchMinSetpt;
+        kal_uint8                        fpcFchMaxSetpt;
+        kal_uint8                        fpcDcchFer;
+        kal_uint8                        fpcDcchMinSetpt;
+        kal_uint8                        fpcDcchMaxSetpt;
+        FcschExtAssignPilotRec11    pilot[ CP_MAX_NUM_PILOTS ];
+        kal_bool                        threeXFchInfoIncl;
+        FcschExtAssign3XFchInfo     threeXFch[ CP_MAX_NUM_PILOTS ];
+        kal_bool                        threeXDcchInfoIncl;
+        FcschExtAssign3XDcchInfo    threeXDcch[ CP_MAX_NUM_PILOTS ];
+    } FcschExtAssignChInd11;
+
+    typedef enum
+    {
+        CP_CH_IND_RESERVED,
+        CP_CH_IND_FCH,
+        CP_CH_IND_DCCH,
+        CP_CH_IND_FCH_AND_DCCH,
+        FPDCH_FCPCCH_RFCH,
+        FPDCH_FCPCCH_RDCCH,
+        FPDCH_FFCH_RFCH,
+        FPDCH_FDCCH_RDCCH,
+        FPDCH_RFCH_FFCH_RDCCH,
+        FPDCH_RFCH_FFCH_RDCCH_FDCCH
+
+    } FcschChIndType;
+
+    typedef enum
+    {
+        CP_EXT_CH_IND_RESERVED,
+        CP_EXT_CH_IND_FPDCH_FCPCCH_RFCH,
+        CP_EXT_CH_IND_FPDCH_FCPCCH_RDCCH,
+        CP_EXT_CH_IND_FPDCH_FFCH_RFCH,
+        CP_EXT_CH_IND_FPDCH_FDCCH_RDCCH,
+        CP_EXT_CH_IND_FPDCH_FFCH_RFCH_RDCCH,
+        CP_EXT_CH_IND_FPDCH_FFCH_RFCH_FDCCH_RDCCH
+    } FcschExtChIndType;
+
+
+    typedef union
+    {
+        FcschExtAssignChInd01 chInd01;
+        FcschExtAssignChInd10 chInd10;
+        FcschExtAssignChInd11 chInd11;
+    } FcschChIndTypes;
+
+    /* ASSIGN_MODE 100 - Extended Traffic Channel Assignment */
+    typedef struct
+    {
+        kal_bool            freqIncl;
+        SysCdmaBandT    bandClass;
+        kal_uint16            cdmaFreq;
+        kal_bool            bypassAlertAnswer;
+        kal_uint8            grantedMode;
+        kal_uint8            defaultConfig;
+        kal_uint8            forRc;
+        kal_uint8            revRc;
+        kal_uint8            frameOffset;
+        kal_uint8            encryptMode;
+        kal_uint8            fpcSubchanGain;
+        kal_int8            rlgainAdj;
+        kal_uint8            numPilots;
+        FcschChIndType  chInd;
+        kal_uint8            chRecordLen;
+        FcschChIndTypes chRec;
+        kal_bool            revFchGatingMode;
+        kal_bool            revPwrCntlDelayIncl;
+        kal_uint8            revPwrCntlDelay;
+        kal_uint8            dSigEncryptMode;
+        kal_uint8            encKeySize;
+        kal_bool            cSigEncryptModeIncl;
+        kal_uint8            cSigEncryptMode;
+        kal_bool            threeX1xrlIncl;
+        kal_uint8            oneXrlFreqOffset;
+        kal_bool            msgIntInfoIncl;
+        kal_bool            changeKeys;
+        kal_bool            useUak;
+        kal_bool            plcmTypeIncl;
+        kal_uint8            plcmType;
+        kal_uint8            plcm39[PLCM39_SIZE];
+    }  FcschExtAssignMode100;
+
+    typedef struct
+    {
+        kal_bool            freqIncl;
+        SysCdmaBandT    bandClass;
+        kal_uint16            cdmaFreq;
+        kal_bool            bypassAlertAnswer;
+        kal_uint8            grantedMode;
+        kal_uint8            srIdRestore;
+        kal_uint8            frameOffset;
+        kal_uint8            encryptMode;
+        kal_uint8            dSigEncryptMode;
+        kal_uint8            encKeySize;
+        kal_bool            cSigEncryptModeIncl;
+        kal_uint8            cSigEncryptMode;
+        kal_bool            msgIntInfoIncl;
+        kal_bool            changeKeys;
+        kal_bool            useUak;
+        kal_bool            plcmTypeIncl;
+        kal_uint8            plcmType;
+        kal_uint8            plcm39[PLCM39_SIZE];
+        kal_int8            rlgainAdj;
+        kal_uint8            numPilots;
+        kal_uint8            extChInd;
+        kal_uint8            fpcSubchanGain;
+        kal_bool            revFchGatingMode;
+        kal_bool            revPwrCntlDelayIncl;
+        kal_uint8            revPwrCntlDelay;
+        kal_bool            fullCiFeedBackInd;
+        kal_uint8            revCqichFrameOffset;
+        kal_uint8            revCqichReps;
+        kal_uint8            revAckChReps;
+        kal_uint8            forPdchRc;
+        kal_uint8            forFchDcchRc;
+        kal_uint8            revFchDcchRc;
+        kal_bool            fpcPriChan;
+        kal_uint8            fpcFchInitSetPt;
+        kal_uint8            fpcFchFer;
+        kal_uint8            fpcFchMinSetPt;
+        kal_uint8            fpcFchMaxSetPt;
+        kal_uint8            fpcDcchInitSetPt;
+        kal_uint8            fpcDcchFer;
+        kal_uint8            fpcDcchMinSetPt;
+        kal_uint8            fpcDcchMaxSetPt;
+        kal_bool            pdchGroupIndIncl;
+        kal_bool            forPdchParamsIncl;
+        kal_uint8            numSoftSwitchingFrames;
+        kal_uint8            numSofterSwitchingFrames;
+        kal_uint8            numSoftSwitchingFramesChm;
+        kal_uint8            numSofterSwitchingFramesChm;
+        kal_uint8            numSoftSwitchingSlots;
+        kal_uint8            numSofterSwitchingSlots;
+        kal_uint8            numSoftSwitchingSlotsChm;
+        kal_uint8            numSofterSwitchingSlotsChm;
+        kal_uint8            pdchSoftSwitchingDelay;
+        kal_uint8            pdchSofterSwitchingDelay;
+        FcschExtAssignPilotRec101  pilot[ CP_MAX_NUM_PILOTS ];
+    }  FcschExtAssignMode101;
+  /* ASSIGN_MODE 001 - Paging Channel Assignment (Band Class 0) */
+  /* ASSIGN_MODE 101 - Extended Paging Channel Assignment */
+  /* EXT ASSIGN_MODE 001 - Paging Channel Assignment */
+  /* This structure covers all 3 types of Paging Channel assignments */
+  /* and allocates storage for the largest number of pilots possible. */
+  typedef struct
+    {
+      kal_bool respond;
+      kal_bool freqIncl;
+      SysCdmaBandT bandClass;
+      kal_uint16 cdmaFreq;
+      kal_uint8 numPilots;
+      kal_uint16 pilotPN [ CP_MAX_EXT_ASSIGN_PAGING_PILOTS ];  /* 20 */
+    } PChPagingAssignment;
+
+  /* This next structure combines the Channel Assignment Message and the */
+  /* Extended Channel Assignment Message. A kal_bool is used to distinguish */
+  /* between the two. */
+  typedef struct
+    {
+      kal_bool  extended;            /* indicates if the assignment is from */
+                                 /* extended message or not */
+      kal_uint8  assignMode;          /* assign mode of particular msg type */
+
+      /* The particular assignment as defined in assignMode is contained */
+      /* in the union below. Note that modes 2 and 3 (analog assignments) */
+      /* are duplicated across both channel assignment messages. */
+      union
+        {
+          PChPagingAssignment mode001_101;
+          PChExtAssignMode000 mode000Ext;
+          PChAssignMode000 mode000;
+          PChAssignMode010 mode010;
+          PChAssignMode011 mode011;
+          PChAssignMode100 mode100;
+          FcschExtAssignMode100 extMode100;
+          FcschExtAssignMode101 extMode101;
+        } mode;
+
+    } PChChannelAssign;
+
+  /* Data Burst Message */
+  /**********************/
+  /* the data structure used is in msg_dfn.h */
+
+
+  /* Authentication Challenge Message */
+  /*****************************/
+  typedef struct
+    {
+      PChCommonFlds common;
+      kal_uint32 randu;
+    } PChAuthChallenge;
+
+
+  /* SSD Update Message */
+  typedef struct
+    {
+      PChCommonFlds common;
+      kal_uint8  randssd[ 7 ];
+    } PChSSDUpdate;
+
+  /* Feature Notification Message */
+  /* This structure contains the Information Record Types - Table 7.7.5-1 */
+  /* and is shared with the Flash structure */
+  typedef FORInfoData FeatureData;
+
+  /* Extended System Parameters Message (ESPM) */
+
+
+  typedef struct
+    {
+      kal_uint16 pilotPN;
+      kal_uint8 configMsgSeq;
+      kal_bool deleteForTmsi;
+      kal_bool useTmsi;
+      kal_uint8 prefMsidType;
+      kal_uint16 mcc;
+      kal_uint8 imsi_11_12;
+      kal_uint8 tmsiZoneLen;
+      kal_uint8 tmsiZone[  CP_MAX_TMSI_ZONE_LEN ];
+      kal_uint8 bcastIndex;
+      kal_bool imsiTSupported;
+      kal_uint8 pRev;
+      kal_uint8 minPRev;
+      kal_uint8 softSlope;
+      kal_int8 addIntercept;
+      kal_int8 dropIntercept;
+      kal_uint8 packetZoneId;
+      kal_uint8 maxNumAltSo;
+      kal_bool reselectIncluded;
+      kal_uint8 ecThresh;
+      kal_uint8 ecIoThresh;
+      kal_bool pilotReport;
+      kal_bool nghbrSetEntryInfo;
+      kal_bool msgEntryHo;
+      kal_bool nghbrSetAccessInfo;
+      kal_bool accessHo;
+      kal_bool accessHoMsgRsp;
+      kal_bool accessProbeHo;
+
+      /*R.Sattari, 7/14/00 */
+      kal_bool accHoListUpd;
+      kal_bool accProbeHoOtherMsg;
+      kal_uint8 maxNumProbeHo;
+      kal_uint8 nghbrSetSize;
+      kal_bool accessEntryHo[CP_MAX_NEIGHBOR_SET];
+      kal_bool accessHoAllowed[CP_MAX_NEIGHBOR_SET];
+
+      /* new parameters for IS-2000A */
+      kal_bool   broadcastGpsAsst;
+      kal_bool   qpchSupported;
+      kal_uint8   numQpch;
+      QpchRate qpchRate;
+      QpchTransPwr qpchPowerLevelPage;
+      kal_bool   qpchCciSupported;
+      QpchTransPwr qpchPowerLevelConfig;
+      kal_bool   sdbSupported;
+      kal_int8   rlgainTrafficPilot;
+      kal_bool   revPwrCntlDelayIncl;
+      kal_uint8   revPwrCntlDelay;
+      kal_bool   autoMsgSupported;
+      kal_uint8   autoMsgInterval;
+      kal_bool   mobQos;
+      kal_bool   encSupported;
+      kal_uint8   sigEncryptSup;
+      kal_uint8   uiEncryptSup;
+/*    kal_bool   storeKey;         Removed from PREV 7 */
+      kal_bool   useSyncId;
+      kal_bool   csSupported;
+      kal_bool   BcchSupported;
+      kal_bool   MsInitPosLocSupInd;
+      kal_bool   PilotInfoReqSupported;
+      kal_bool   qpchBiSupported;
+      QpchTransPwr qpchPowerLevelBcast;
+      kal_bool   BandClassInfoReq;
+      SysCdmaBandT AltBandClass;
+      kal_bool   CdmaOffTimeRepSupInd;
+      kal_bool   CdmaOffTimeRepThresholdUnit;
+      kal_uint8   CdmaOffTimeRepThreshold;
+      kal_bool   ReleaseToIdleInd;
+      kal_bool   ReconnectMsgInd;
+      kal_bool   MsgIntegritySup;
+      kal_bool   SigIntegritySupIncl;
+      kal_uint8   SigIntegritySup;
+      kal_bool   ForPdchSupported;
+      kal_uint8   RlgainAckcqichPilot;
+      kal_bool   PdchParamsIncl;
+      kal_uint8   NumSoftSwitchingFrames;
+      kal_uint8   NumSofterSwitchingFrames;
+      kal_uint8   NumSoftSwitchingSlots;
+      kal_uint8   NumSofterSwitchingSlots;
+      kal_uint8   PdchSoftSwitchingDelay;
+      kal_uint8   PdchSofterSwitchingDelay;
+      kal_uint8   WalshTableId;
+      kal_uint8   NumPdcch;
+      kal_uint8   ForPdcchWalsh[CP_MAX_PDCCH_CH];
+
+    } PChExtendedSystemPars;
+
+  /* Extended Neighbor List Message */
+  typedef struct
+    {
+      kal_uint16 pilotPN;
+      kal_uint8 configMsgSeq;
+      kal_uint8 pilotInc;
+      struct
+        {
+          kal_uint8    nghbrConfig;
+          kal_uint16    nghbrPN;
+          kal_uint8    searchPriority;
+          kal_bool    freqIncl;
+          SysCdmaBandT nghbrBand;
+          kal_uint16    nghbrFreq;
+        } nghbrs[CP_MAX_NEIGHBOR_SET];
+    } PChExtendedNghbrList;
+
+  /* Status Request Message (STRQM) */
+  typedef struct
+    {
+      PChCommonFlds common;
+      kal_uint8 qualInfoType;
+      kal_uint8 qualInfoLen;
+      kal_uint8 qualInfo[7];            /* max value held in qual_info_len */
+      kal_uint8 numFields;
+      /* The information record type is held in the general message buffer */
+    } PChStatusRequest;
+
+
+  /* Service Redirection Message */
+  /* defined in tcmsgdfn.h */
+
+  /* General Page Message */
+  typedef struct
+    {
+      kal_uint8 configMsgSeq;
+      kal_uint8 accMsgSeq;
+      kal_bool class0Done;
+      kal_bool class1Done;
+      kal_bool tmsiDone;
+      kal_bool orderedTmsis;
+      kal_bool broadcastDone;
+      kal_uint8 addLen;
+      kal_uint8 addPfield;
+      /* The page record is stored in the general page message buffer and */
+      /* would be mapped to page field records as required. */
+    } PChGeneralPage;
+
+  /* Global Service Redirection Message */
+  /* same as Service Redirection Message */
+
+  /* TMSI Assignment Message */
+  /* same definition is shared in tcmsgdfn.h */
+
+  /* ANSI-41 System Parameters Message (A41SPM) */
+    typedef struct
+    {
+        kal_uint16        pilotPn;
+        kal_uint8        configMsgSeq;
+        kal_uint16        sid;
+        kal_uint16        nid;
+        kal_uint8        packetZoneId;
+        kal_uint16        regZone;
+        kal_uint8        totalZones;
+        kal_uint8        zoneTimer;
+        kal_bool        multSids;
+        kal_bool        multNids;
+        kal_bool        homeReg;
+        kal_bool        forSidReg;
+        kal_bool        forNidReg;
+        kal_bool        powerUpReg;
+        kal_bool        powerDownReg;
+        kal_bool        parameterReg;
+        kal_uint8        regPrd;
+        kal_bool        distRegIncl;
+        kal_uint16        regDist;
+        kal_bool        deleteForTmsi;
+        kal_bool        useTmsi;
+        kal_uint8        prefMsidType;
+        kal_uint8        tmsiZoneLen;
+        kal_uint8        tmsiZone[ CP_MAX_TMSI_ZONE_LEN ];
+        kal_bool        imsiTSupported;
+        kal_uint8        maxNumAltSo;
+        kal_bool        autoMsgSupported;
+        kal_uint8        autoMsgInterval;
+        kal_bool        otherInfoIncl;
+        kal_uint16        baseId;
+        kal_uint16        mcc;
+        kal_uint8        imsi_11_12;
+        kal_uint8        broadcastGpsAsst;
+        kal_uint8        sigEncryptSup;
+/*        kal_bool        storeKey;             deleted from PREV 7 */
+        kal_bool        csSupported;
+      kal_bool        MsInitPosLocSupInd;
+      kal_bool        MsgIntegritySup;
+      kal_bool        SigIntegritySupIncl;
+      kal_uint8        SigIntegritySup;
+    }  BcchA41SPM;
+
+
+/* MC-RR Parameters Message (MCRRPM) */
+#define CP_MAX_FCCCH_CODE_CHAN 7
+#define MAX_NUM_BCCH_BCAST  7
+#define MAX_QPCH_CODE_CHAN  3
+
+    typedef struct
+    {
+        kal_uint8        bcchCodeChan;
+        BcchRate    brat;
+        kal_bool        bcchCodeRate;
+    }  BcchBcast;
+
+    typedef struct
+    {
+        kal_uint16            pilotPn;
+        kal_uint8            configMsgSeq;
+        kal_uint16            baseId;
+        kal_uint8            pRev;
+        kal_uint8            minPRev;
+        kal_bool            sr3Incl;
+        kal_bool            sr3CenterFreqIncl;
+        kal_uint16            sr3CenterFreq;
+        BcchRate        sr3Brat;
+        kal_uint8            sr3BcchCodeChan;
+        kal_uint8            sr3PrimaryPilot;
+        kal_uint8            sr3PilotPower1;
+        kal_uint8            sr3PilotPower2;
+        kal_uint8            srchWinA;
+        kal_uint8            srchWinR;
+        kal_uint8            tAdd;
+        kal_uint8            tDrop;
+        kal_uint8            tComp;
+        kal_uint8            tTdrop;
+        kal_uint8            nghbrMaxAge;
+        kal_uint8            softSlope;
+        kal_int8            addIntercept;
+        kal_int8            dropIntercept;
+        kal_bool            encSupported;
+        kal_uint8            sigEncryptSup;
+        kal_uint8            uiEncryptSup;
+        kal_bool            storeKey;
+        kal_uint8            addFieldsLen;
+        kal_bool            cchInfoIncl;
+        kal_uint16            mcc;
+        kal_uint8            imsi_11_12;
+        kal_uint8            maxSlotCycleIndex;
+        kal_uint8            pwrRepThresh;
+        kal_uint8            pwrRepFrames;
+        kal_bool            pwrThreshEnable;
+        kal_bool            pwrPeriodEnable;
+        kal_uint8            pwrRepDelay;
+        kal_bool            reselectionIncluded;
+        kal_uint8            ecThresh;
+        kal_uint8            ecIoThresh;
+        kal_int32           baseLat;
+        kal_int32           baseLong;
+        kal_bool            pilotReport;
+        kal_bool            accEntHoOrder;
+        kal_bool            accessHo;
+        kal_bool            accessHoMsgRsp;
+        kal_bool            accessProbeHo;
+        kal_bool            accHoListUpd;
+        kal_bool            accProbeHoOtherMsg;
+        kal_uint8            maxNumProbeHo;
+        kal_uint8            numFccch;
+        FccchRate       fccchRate;
+        kal_uint8            fccchCodeRate;
+        kal_uint8            fccchCodeChan[ CP_MAX_FCCCH_CODE_CHAN ];
+        kal_uint8            bcastIndex;
+        kal_uint8            numBcchBcast;
+        BcchBcast       bcchBcast[ MAX_NUM_BCCH_BCAST ];
+        kal_bool            qpchSupported;
+        kal_uint8            numQpch;
+        QpchRate        qpchRate;
+        QpchTransPwr    qpchPowerLevelPage;
+        kal_bool            qpchCciSupported;
+        QpchTransPwr    qpchPowerLevelConfig;
+        kal_uint8            qpchCodeChan[ MAX_QPCH_CODE_CHAN ];
+        kal_bool            qpchBiSupported;
+        QpchTransPwr    qpchPowerLevelBcast;
+        kal_bool            sdbSupported;
+        kal_bool            broadcastGpsAsst;
+        kal_int8            rlgainTrafficPilot;
+        kal_bool            revPwrCntlDelayIncl;
+        kal_uint8            revPwrCntlDelay;
+        kal_bool            mobQos;
+        kal_bool            useSyncId;
+        kal_uint8            numOptMsg;
+        kal_bool            sendingRand;
+        kal_bool            priNghbrList;
+        kal_bool            userZoneId;
+        kal_bool            extGlobalRedirect;
+#ifdef MTK_DEV_C2K_IRAT
+        kal_bool            APPilotInfo;
+        kal_bool            APIdt;
+        kal_bool            APIdText;
+        kal_bool            GenOvhdInfoInd;
+        kal_bool            FDChanListInd;
+        kal_bool            ATIMId;
+#endif /* MTK_DEV_C2K_IRAT*/
+        kal_uint8            Reserved;
+        kal_bool            PilotInfoReqSupported;
+        kal_bool            BandClassInfoReq;
+        SysCdmaBandT    AltBandClass;
+        kal_bool            CdmaOffTimeRepSupInd;
+        kal_bool            CdmaOffTimeRepThresholdUnit;
+        kal_uint8            CdmaOffTimeRepThreshold;
+        kal_bool            ReleaseToIdleInd;
+        kal_bool            ReconnectMsgInd;
+        kal_bool            TTdropRangeIncl;
+        kal_uint8            TTdropRange;
+        kal_bool            ForPdchSupported;
+        kal_uint8            RlgainAckcqichPilot;
+        kal_bool            PdchParamsIncl;
+        kal_uint8            NumSoftSwitchingFrames;
+        kal_uint8            NumSofterSwitchingFrames;
+        kal_uint8            NumSoftSwitchingSlots;
+        kal_uint8            NumSofterSwitchingSlots;
+        kal_uint8            PdchSoftSwitchingDelay;
+        kal_uint8            PdchSofterSwitchingDelay;
+        kal_uint8            WalshTableId;
+        kal_uint8            NumPdcch;
+        kal_uint8          ForPdcchWalsh[CP_MAX_PDCCH_CH];
+    }  BcchMCRRPM;
+
+/* ANSI-41 RAND Message (A41RANDM) */
+    typedef struct
+    {
+        kal_uint16        pilotPn;
+        kal_uint8        reserved;
+        kal_uint32       rand;
+    }  BcchA41RANDM;
+
+
+/* Extended CDMA Channel List Message (ECCLM) */
+#define MAX_CDMA_FREQ   15
+
+    typedef struct
+    {
+        kal_uint16            pilotPn;
+        kal_uint8            configMsgSeq;
+        kal_uint8            numFreq;
+        kal_uint16            cdmaFreq[ MAX_CDMA_FREQ ];
+        kal_bool            rcQpchSelIncl;
+        kal_bool            rcQpchHashInd[ MAX_CDMA_FREQ ];
+        kal_bool            tdSelIncl;
+        Sr1TdModes      tdMode;
+        kal_bool            tdHashInd[ MAX_CDMA_FREQ ];
+        Sr1TdPowerLevel tdPowerLevel[ MAX_CDMA_FREQ ];
+    }  PChECCLM;
+
+/* Extended Global Service Redirection Message (EGSRDM) */
+    typedef struct
+    {
+        kal_uint16             pilotPn;
+        kal_uint8             configMsgSeq;
+        kal_bool             redirectPRevIncl;
+        kal_uint8             exclPRevInd;
+        kal_uint8             redirectPmin;
+        kal_uint8             redirectPmax;
+        ServiceRedirData redirData;
+    }  PChEGSRM;
+
+/* Enhanced Access Parameter Message (EAPM) */
+#define CP_MAX_MODE_SELECTION_ENTRIES   8
+#define CP_MAX_NUM_MODE_PARM_REC        8
+#define CP_MAX_NUM_CACH                 7
+#define CP_MAX_NUM_CPCCH                3
+/*
+#define CP_MAX_NUM_ACCT_SO              16
+#define CP_MAX_NUM_ACCT_SO_GRP          8   */
+
+    typedef struct
+    {
+        kal_uint8        accessMode;
+        kal_uint16        accessModeMinDuration;
+        kal_uint16        accessModeMaxDuration;
+    }  BcchEAPMModSel;
+
+    typedef struct
+    {
+        kal_uint8        eachParmRecLen;
+        kal_uint8        applicableModes;
+        kal_uint8        eachNomPwr;
+        kal_uint8        eachInitPwr;
+        kal_uint8        eachPwrStep;
+        kal_uint8        eachNumStep;
+        kal_bool        eachPreambleEnabled;
+        kal_uint8        eachPreambleNumFrac;
+        kal_uint8        eachPreambleFracDuration;
+        kal_uint8        eachPreambleOffDuration;
+        kal_uint8        eachPreambleAddDuration;
+        kal_uint8        eachAccessThresh;  /* ??? BSR */
+        kal_uint8        eachProbeBkoff;
+        kal_uint8        eachBkoff;
+        kal_uint8        eachSlot;
+        kal_uint8        eachSlotOffset1;
+        kal_uint8        eachSlotOffset2;
+    }  BcchEAPMRec;
+
+    typedef struct
+    {
+       kal_uint8         AcctAocBitmap1;
+       kal_uint16         AcctSo;
+    }  BcchEAPMAcctSo;
+
+    typedef struct
+    {
+       kal_uint8         AcctAocBitmap2;
+       kal_uint8         AcctSoGrp;
+    }  BcchEAPMAcctSoGrp;
+
+#ifdef MTK_DEV_C2K_IRAT
+#define CP_MAX_NUM_ATIM_RADIO_INT_REC 2
+#define CP_MAX_NUM_EUTRAFREQ_REC 7
+#define CP_MAX_NUM_PLMNID 7
+typedef struct
+{
+  kal_uint16 EARFCN;
+  kal_uint8  EARFCNPri;
+  kal_uint8  ThreshX;
+  kal_uint8  RxLevMinEUTRA;
+  kal_uint8  PEMax;
+  kal_bool   RxLevMinEUTRAOffsetIncl;
+  kal_uint8  RxLevMinEUTRAOffset;
+  kal_uint8  MeasBandwidth;
+  kal_bool   PLMNSameAsPrevChannel;
+  kal_uint8  NumPLMNIDs;
+  kal_uint32 PLMNID[CP_MAX_NUM_PLMNID];
+} EUTRAFreqRec;
+
+typedef struct
+{
+  kal_bool   PriorityIncl;
+  kal_uint8  ServingPriority;
+  kal_uint8  ThreshServing;
+  kal_bool   PerEARFCNParmsIncl;
+  kal_uint8  RxLevMinEUTRACommon;
+  kal_uint8  PEMaxCommon;
+  kal_bool   RxLevMinEUTRAOffsetCommmonIncl;
+  kal_uint8  RxLevMinEUTRAOffsetCommon;
+  kal_bool   MaxReselTimerIncl;
+  kal_uint8  MaxReselTimer;
+  kal_bool   SrchBackoffTimerIncl;
+  kal_uint8  MinMeasBackoff;
+  kal_uint8  MaxMeasBackoff;
+  kal_bool   PLMNIDIncl;
+  kal_uint8  NumEUTRAFreq;
+  EUTRAFreqRec rec[CP_MAX_NUM_EUTRAFREQ_REC];
+} EUtranRec;
+
+typedef struct
+{
+  kal_uint8  type; /* HRPD=2, E-UTRAN=3, WiMAX=4 */
+  kal_uint16 len;
+  union
+  {
+    EUtranRec E_UTRAN;
+  }  recType;
+} ATIMRadioIntRec;
+
+typedef struct
+{
+  kal_uint16  pilotPn;
+  kal_uint8   configMsgSeq;
+  kal_uint8   numRadioInterface;
+  ATIMRadioIntRec rec[CP_MAX_NUM_ATIM_RADIO_INT_REC];
+} PchATIM;
+#endif /* MTK_DEV_C2K_IRAT */
+
+typedef struct
+{
+  kal_uint16                pilotPn;
+  kal_uint8                accMsgSeq;
+  kal_bool                psistParmsIncl;
+  kal_uint8                psistParmsLen;
+  kal_uint8                psist0_9Each;
+  kal_uint8                psist10Each;
+  kal_uint8                psist11Each;
+  kal_uint8                psist12Each;
+  kal_uint8                psist13Each;
+  kal_uint8                psist14Each;
+  kal_uint8                psist15Each;
+  kal_uint8                psistEmg;
+  kal_uint8                msgPsistEach;
+  kal_uint8                regPsistEach;
+  kal_uint8                lacParmsLen;
+  kal_uint8                accTmo;
+  kal_uint8                probePnRan; /* ??? BSR */
+  kal_uint8                maxReqSeq;
+  kal_uint8                maxRspSeq;
+  kal_uint8                numModeSelectionEntries;
+  BcchEAPMModSel      modeSelection[ CP_MAX_MODE_SELECTION_ENTRIES ];
+  kal_int8                rlgainCommonPilot;
+  kal_uint8                icThresh;
+  kal_uint8                icMax;
+  kal_uint8                numModeParmRec;
+  BcchEAPMRec         modeParmRec[ CP_MAX_NUM_MODE_PARM_REC ];
+  kal_uint8                baParmsLen;
+  kal_uint8                numEachBa;
+  kal_uint8                eachBaRatesSupported;
+  kal_uint8                raParmsLen;
+  kal_uint8                numEachRa;
+  kal_uint8                numCach;
+  kal_uint8                cachCodeRate;
+  kal_uint8                cachCodeChan[ CP_MAX_NUM_CACH ];
+  kal_uint8                numRccch;
+  kal_uint8                rccchRatesSupported;
+  kal_bool                rccchPreambleEnabled;
+  kal_uint8                rccchPreambleNumFrac;
+  kal_uint8                rccchPreambleFracDuration;
+  kal_uint8                rccchPreambleOffDuration;
+  kal_uint8                rccchPreambleAddDuration;
+  kal_uint8                rccchSlot;
+  kal_uint8                rccchSlotOffset1;
+  kal_uint8                rccchSlotOffset2;
+  kal_uint8                rccchNomPwr;
+  kal_uint8                rccchInitPwr;
+  kal_uint8                raPcDelay;
+  kal_uint8                eacamCachDelay;
+  kal_bool                rccchHoSupprted;
+  kal_uint8                rccchHoThresh;
+  kal_uint8                eacamPccamDelay;
+  kal_uint8                numCpcch;
+  kal_uint8                cpcchRate;
+  kal_uint8                cpcchCodeChan[ CP_MAX_NUM_CPCCH ];
+/*    kal_uint8                RaCpcchStepUp;                         deleted from PREV 7 */
+/*    kal_uint8                RaCpcchStepDn;                         deleted from PREV 7 */
+  kal_uint8                numPcschRa;
+  kal_bool                AcctIncl;
+  kal_bool                AcctInclEmg;
+  kal_bool                AcctAocBitmapIncl;
+  kal_bool                AcctSoIncl;
+  kal_uint8                NumAcctSo;
+  BcchEAPMAcctSo      AcctSo[ CP_MAX_NUM_ACCT_SO ];
+  kal_bool                AcctSoGrpIncl;
+  kal_uint8                NumAcctSoGrp;
+  BcchEAPMAcctSoGrp   AcctSoGrp[ CP_MAX_NUM_ACCT_SO_GRP ];
+}  BcchEAPM;
+
+/* Universal Neighbor List Message (UNLM) */
+typedef struct
+{
+    kal_uint8                nghbrConfig;
+    kal_uint16                nghbrPn;
+    kal_bool                bcchSupport;
+    kal_bool                addPilotRecIncl;
+    PilotRecType        nghbrPilotRecType;
+    kal_uint8                recLen;
+    HONghbrPilotRec     nghbrPilotRec;
+} BcchUNLMNghbrRec;
+
+#define CP_MAX_CDMA_NGHBR   63
+
+typedef struct
+{
+    kal_uint8                pilotInc;
+    NghbrSearchMode     nghbrSrchMode;
+    kal_uint8                srchWinN;
+    kal_bool                srchOffsetIncl;
+    kal_bool                freqFieldsInc;
+    kal_bool                useTiming;
+    kal_bool                globalTimingIncl;
+    kal_uint8                globalTxDuration;
+    kal_uint8                globalTxPeriod;
+    kal_bool                nghbrSetEntryInfo;
+    kal_bool                nghbrSetAccessInfo;
+    kal_uint8                numNghbr;
+    BcchUNLMNghbrRec    nghbrRec[ CP_MAX_CDMA_NGHBR ];
+    kal_uint8                searchPriority;
+    kal_uint8                srchWinNghbr;
+    kal_uint8                srchOffsetNghbr;
+    kal_bool                freqIncl;
+    SysCdmaBandT        nghbrBand;
+    kal_uint16                nghbrFreq;
+    kal_bool                timingIncl;
+    kal_uint8                nghbrTxOffset;
+    kal_uint8                nghbrTxDuration;
+    kal_uint8                nghbrTxPeriod;
+    kal_bool                accessEntryHo;
+    kal_bool                accessHoAllowed;
+    kal_bool                ResqEnabled;
+    kal_uint8                ResqDelayTime;
+    kal_uint8                ResqAllowedTime;
+    kal_uint8                ResqAttemptTime;
+    kal_uint16                ResqCodeChan;
+    kal_uint8                ResqQof;
+    kal_bool                ResqMinPeriodIncl;
+    kal_uint8                ResqMinPeriod;
+    kal_bool                ResqNumTotTransIncl;
+    kal_uint8                ResqNumTotTrans20ms;
+    kal_uint8                ResqNumTotTrans5ms;
+    kal_uint8                ResqNumPreambleRc1Rc2;
+    kal_uint8                ResqNumPreamble;
+    kal_uint8                ResqPowerDelta;
+    kal_bool                NghbrResqConfigured[ CP_MAX_CDMA_NGHBR];
+
+} BcchUNLMMcSysterm;
+
+#define CP_MAX_NUM_ANALOG_NGHBR    7
+
+typedef struct
+{
+    kal_uint8                 numAnalogNghbr;
+    HOAnalogNghbrRecord  analogNghbr[ CP_MAX_NUM_ANALOG_NGHBR ];
+} BcchUNLMAnalog;
+
+typedef enum
+{
+    RADIO_INTERFACE_TYPE_MC_SYSTEM,
+    RADIO_INTERFACE_TYPE_ANALOG_SYSTEM
+} RadioInterfaceType;
+
+typedef struct
+{
+    RadioInterfaceType  radioInterfaceType;
+    kal_uint8                radioInterfaceLen;
+
+    union
+    {
+        BcchUNLMMcSysterm      cdmaRec;
+        BcchUNLMAnalog         analogRec;
+    }  type;
+}  RadioInterfaces;
+
+#define CP_MAX_RADIO_INTERFACE 15
+
+typedef struct
+{
+    kal_uint16                pilotPn;
+    kal_uint8                configMsgSeq;
+    kal_uint8                numRadioInterface;
+    RadioInterfaces     radioInterface[ CP_MAX_RADIO_INTERFACE ];
+}  BcchUNLM;
+
+
+/****************************************************************************
+* Prototypes
+****************************************************************************/
+
+/* #ifdef IS2000_REV_0 */
+/* Created to unpack Extended CDMA Channel List Message */
+kal_bool cpExtChanLstMessage( PChECCLM *pECCLM, FcschMessage* pFcschMsg );
+
+/* Created to unpack Extended Global Service Redirect Message */
+kal_bool cpExtGlobServRedirMessage( PChEGSRM *pEGSRM, FcschMessage* pFcschMsg );
+
+/* Create to unpack Neighbor Pilot Records
+ in Universal Neighbor List Message or General Neighbor List Message */
+kal_bool cpExtractPilotRec
+(
+const PilotRecType     nghbrRecType,
+const kal_uint16                  recLength,
+kal_uint8                        *pBuffer,
+kal_uint16                        *pMsgNdx,
+HONghbrPilotRec             *pRec
+);
+/* #endif */
+
+
+/* Created to unpack ANSI-41 Systerm Parameters Message */
+kal_bool cpAnsi41SysParsMessage( BcchA41SPM *pA41SPM, FcschMessage* pFcschMsg );
+
+/* Created to unpack ANSI-41 RAND Message */
+kal_bool cpAnsi41RandMessage( BcchA41RANDM *pA41RANDM, FcschMessage* pFcschMsg );
+
+/* Created to unpack MC RR Parameters Message */
+kal_bool cpMcRrParsMessage( BcchMCRRPM *pMCRRPM, FcschMessage* pFcschMsg );
+
+#ifdef MTK_DEV_C2K_IRAT
+kal_bool cpAlterTechInfoMessage(PchATIM  *pATIM, FcschMessage* pFcschMsg);
+#endif /* MTK_DEV_C2K_IRAT */
+/* Created to unpack Enhanced Access Parameter Message */
+kal_bool cpEnhAccessParsMessage(BcchEAPM *pEAPM,FcschMessage* pFcschMsg);
+
+/* Create to unpack Universal Neighbor List Message */
+kal_bool cpUnivNghbListMessage( BcchUNLM *pUNLM, FcschMessage* pFcschMsg );
+
+PChChannelAssign *cpGetChannelAssignment(void);
+void cpGetPageOrder(kal_uint8 *order,kal_uint8 *ordq);
+kal_uint32 cpGetAuthBS(void);
+kal_uint8 cpGetRoamIndi(void);
+CPState cpRespondToBSOrder_Message(PChMessage *msg,kal_uint16 *index);
+kal_bool cpSysParsMessage(PChSystemParameters *msg,FcschMessage* pFcschMsg, kal_bool checkPN);
+
+kal_bool cpAccessParsMessage(PChAccessParameters *message, FcschMessage* pFcschMsg);
+
+kal_bool cpNeighborListMessage(HONghbrIdleHandoffList *rec,FcschMessage* pFcschMsg);
+kal_bool cpCdmaChannelListMessage(PChChannelList *message,FcschMessage *pFcschMsg);
+kal_bool cpExtSystemParsMessage (PChExtendedSystemPars *msg, FcschMessage* pFcschMsg);
+kal_bool cpGlobalSvcRedirectMessage(ServiceRedirData *redirect,FcschMessage *pFcschMsg);
+kal_bool cpChannelAssignMessage(kal_uint8 *data,kal_uint16 *index);
+kal_bool cpOrderMessage(PChMessage *message,kal_uint16 *index);
+kal_bool cpDataBurstMessage(DataBurstData* dataBurstData,kal_uint8 *data,kal_uint16 *index);
+void cpAuthChallMessage(kal_uint8 *data,kal_uint16 *index,kal_uint32 *randu);
+void cpSSDUpdateMessage(kal_uint8 *data,kal_uint16 *index,kal_uint8 *randSSD);
+kal_bool cpStatusRequestMessage(PChMessage *message,kal_uint16 *index);
+kal_bool cpServiceRedirectMessage(ServiceRedirData *redirect,kal_uint8 *data,kal_uint16 *index);
+kal_bool cpExtChannelAssignMessage(kal_uint8 *data,kal_uint16 *index,kal_uint8 msgType);
+kal_bool validateCodeChan(kal_uint8 PRev, kal_uint8 RC, kal_uint16 CodeChan);
+void extractPLCMFields(kal_uint8 *data, kal_uint16 *index, kal_bool *plcmTypeIncl, kal_uint8 *plcmType, kal_uint8 *plcm39);
+
+#endif  /* _PCH_MSG_H_ */
+
+
+
+/**Log information: \main\Trophy_SO73\1 2013-07-09 05:05:19 GMT gdeng
+** HREF#0000 see scbp11634**/
+/**Log information: \main\Trophy\1 2013-07-17 08:12:30 GMT cshen
+** href#2222**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pilots.h b/mcu/interface/protocol/as_c2k/1xrtt/pilots.h
new file mode 100644
index 0000000..89700cc
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pilots.h
@@ -0,0 +1,417 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   pilots.h
+ *
+ * Purpose:    Definition of Pilot structures and supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *
+ *       $Log: pilots.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.3  2004/04/06 14:02:19  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:40  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2004/02/10 12:50:53  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.13  2003/12/04 18:18:44  blee
+ *       Pilot search for remaining set added
+ *       Revision 1.12  2002/12/30 19:07:48  akayvan
+ *       Per CR570, corrected replacement of IS2000_ADDENDMENT_2
+ *       with IS2000_REV_A instead of IS2000_REV_0, and replaced
+ *       IS2000_A_3X with IS2000_REV_A.
+ *       Revision 1.11  2002/12/26 16:13:34  dstecker
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0
+ *       Revision 1.10  2002/10/31 18:24:03  amala
+ *       Changed RMS Error Phase parameter type to kal_uint8.
+ *       Revision 1.9  2002/08/26 16:11:02  ameya
+ *       Changed CP_MAX_STORED_NEIGHBORS to 40 from 64. Fixed CR# 635.
+ *       Revision 1.8  2002/06/06 13:14:08  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.7  2002/03/01 16:29:59  AMALA
+ *       Added Location Services AFLT functionality.
+ *       Revision 1.6  2001/09/04 15:27:21  byang
+ *       Redefined HO_MAX_WALSH_CODE_LENGTH to be 2
+ *       instead of 65 since the maximum size is only 9 bits.
+ *
+ *       Revision 1.5  2001/08/03 15:15:20  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.4  2001/07/18 15:14:11  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.3  2001/06/29 12:02:56  byang
+ *       Added compiler flag IS2000_A_AUX_PILOTfor all auxiliary
+ *       pilot record structures declaration and processing code.
+ *       Revision 1.2  2001/06/12 15:45:03  byang
+ *       Update the maximum neighbor list from 20 to 40.
+ *       Moved idle neighbor list structures to here to prevent circular
+ *       dependency.
+ *       Revision 1.1  2001/01/17 10:59:12  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:23  fpeng
+ *       Initial revision
+ *       Revision 1.4  2000/09/23 02:38:43Z  rnookala
+ *       changed n8m to 20
+ *       Revision 1.3  2000/08/23 22:10:10Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.13  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.12  1998/11/20 16:44:23  scotvold
+ *       Moved HOTCPilot Structure definition from ho_tc.h to here.
+ *       Removed tDrop for TEST_PILOT optimization.
+ *
+ *       Revision 1.11  1998/10/31 02:19:17  scotvold
+ *       Pilot Set maintenance optimization test.
+ *
+ *       Revision 1.10  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.9  1998/08/14 23:49:45  scotvold
+ *       Added pilotPN to Remaining measurement.
+ *
+ *       Revision 1.8  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.7  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.6  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _PILOTS_H_
+
+  #define _PILOTS_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "channel.h"
+#include "sync_msg.h"
+#include "cptimer.h"
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+#define CP_MAX_ACTIVE_SET            N6m
+#define CP_MAX_CANDIDATE_SET         N7m
+#define CP_MAX_NEIGHBOR_SET          N8m
+#define CP_MAX_ANALOG_NEIGHBOR_SET   7
+
+#ifdef MTK_CBP
+#define CP_MAX_REMAINING_SET         44
+#else
+#define CP_MAX_REMAINING_SET         20
+#endif
+
+#define CP_MAX_CH_CHANGE_LIST        CP_MAX_NEIGHBOR_SET
+
+/* Define CF Search Set and Neighbor Set to be of maximum size as the **
+** maximum number of pilots that can be sent in a Candidate Frequency **
+** Search Request Message = N8m as specified in 7.6.6.2.1.4           */
+#define CP_MAX_CANDIDATE_FREQUENCY_SEARCH_SET       N8m
+#define CP_MAX_CANDIDATE_FREQUENCY_NEIGHBOR_SET     N8m
+
+typedef enum
+{
+  CP_SM_NO_SEARCH_PRIORITIES_OR_SEARCH_WINDOWS,
+  CP_SM_SEARCH_PRIORITIES,
+  CP_SM_SEARCH_WINDOWS,
+  CP_SM_SEARCH_PRIORITIES_AND_SEARCH_WINDOWS
+} NghbrSearchMode;
+
+/*****************************************************************************
+ * Pilot structure definitions
+ ****************************************************************************/
+  typedef enum
+  {
+      PILOT_REC_1X_COMMON_TD,
+      PILOT_REC_1X_AUX_NON_TD,
+      PILOT_REC_1X_AUX_TD,
+      PILOT_REC_3X_COMMON,
+      PILOT_REC_3X_AUX
+  } PilotRecType;
+
+/* Information extracted from the Universal Neighbor List Message */
+  typedef struct
+  {
+      Sr1TdPowerLevel tdPowerLevel;
+      Sr1TdModes      tdMode;
+  }  HONghbrPilotRecType000;
+
+/* The maximum Walsh Code size in octets */
+/* maximum of 3 bits + 6 bits = 9 bits */
+#define HO_MAX_WALSH_CODE_LENGTH 2
+
+  typedef struct
+  {
+      kal_uint8        qof;
+      kal_uint16        walshLength;
+      kal_uint8        auxPilotWalsh[ HO_MAX_WALSH_CODE_LENGTH ];
+  }  HONghbrPilotRecType001;
+
+  typedef struct
+  {
+      kal_uint8        qof;
+      kal_uint16        walshLength;
+      kal_uint8        auxWalsh[ HO_MAX_WALSH_CODE_LENGTH ];
+      kal_uint8        auxTdPowerLevel;
+      kal_uint8        tdMode;
+  }  HONghbrPilotRecType010;
+
+  typedef struct
+  {
+      kal_uint8        sr3PrimaryPilot;
+      kal_uint8        sr3PilotPower1;
+      kal_uint8        sr3PilotPower2;
+  }  HONghbrPilotRecType011;
+
+  typedef struct
+  {
+      kal_uint8        sr3PrimaryPilot;
+      kal_uint8        sr3PilotPower1;
+      kal_uint8        sr3PilotPower2;
+      kal_uint8        qof;
+      kal_uint16        walshLength;
+      kal_uint8        auxPilotWalsh[ HO_MAX_WALSH_CODE_LENGTH ];
+      kal_bool        addInfoIncl1;
+      kal_uint8        qof1;
+      kal_uint16        walshLength1;
+      kal_uint8        auxPilotWalsh1[ HO_MAX_WALSH_CODE_LENGTH ];
+      kal_bool        addInfoIncl2;
+      kal_uint8        qof2;
+      kal_uint16        walshLength2;
+      kal_uint8        auxPilotWalsh2[ HO_MAX_WALSH_CODE_LENGTH ];
+  }  HONghbrPilotRecType100;
+
+  typedef union
+  {
+      HONghbrPilotRecType000  type000;
+
+      HONghbrPilotRecType001  type001;
+      HONghbrPilotRecType010  type010;
+
+      HONghbrPilotRecType011  type011;
+      HONghbrPilotRecType100  type100;
+
+  } HONghbrPilotRec;
+
+  /* structure used to set search windows for pilot searches */
+  typedef struct
+  {
+    kal_uint8  activeWindow;
+    kal_uint8  neighborWindow;
+    kal_uint8  remainingWindow;
+  } PilotSearchWindow;
+
+  /* structure to define content of the IDLE neighbor list */
+  typedef struct
+  {
+    kal_uint16          pilotPN;
+    kal_bool            freqIncluded;                /* indicates if freq info is available */
+    SysCdmaBandT    band;                        /* CDMA band */
+    kal_uint16          frequency;                   /* CDMA_CH frequency */
+    kal_uint8           priority;                    /* search priority */
+    kal_uint8           srchWinNghbr;                /* Neighbor search window */
+    kal_uint8           srchOffsetNghbr;
+    kal_bool            timingIncl;
+    kal_uint8           nghbrTxOffset;
+    kal_uint8           nghbrTxDuration;
+    kal_uint8           nghbrTxPeriod;
+    kal_bool            bcchSupport;
+    kal_bool            addPilotRecIncl;
+    PilotRecType    pilotRecType;
+    HONghbrPilotRec pilotRec;
+  } IdleNghbrConfig;
+
+  /* R.Sattari, 6/29/00 */
+  /* structure to define content of the Traffic Channel hopping neighbor list */
+  typedef struct
+  {
+    kal_uint16  nghbrPN;
+    kal_uint8   searchPriority;
+    kal_uint8   srchWinNghbr;
+    kal_bool    timeIncl;
+    kal_uint8   nghbrTxOffset;
+    kal_uint8   nghbrTxDuration;
+    kal_uint8   nghbrTxPeriod;
+    kal_uint8   srchOffsetNghbr; /* 0 means not included (only 3 bit value) */
+    kal_uint8   otdPowerLevel;
+  } NghbrPilot;
+
+  /* structure to combine Idle and TC neighbor lists */
+  /* The Global Neighbor Search Window is not included in this structure  **
+  ** since it is sent down in the wbiosPilotSearchWindow() call           */
+  typedef struct
+  {
+    NghbrSearchMode  nghbrSrchMode;     /* NGHBR_SRCH_MODE */
+    kal_uint8            numPilots;         /* number of pilots provided in list */
+#ifdef MTK_CBP
+    NghbrPilot       pilot[ SYS_CP_MAX_NEIGHBOR_LIST_PILOTS ];
+#else
+    NghbrPilot       pilot[ CP_MAX_NEIGHBOR_SET ];
+#endif
+  } NghbrList;
+
+
+  /* structure to provide Active Pilot set list */
+  typedef struct
+  {
+    kal_uint8   numPilots;   /* number of pilots provided in list */
+    kal_uint16  pilot[CP_MAX_ACTIVE_SET];
+  } ActiveList;
+
+
+  /* structure to define content of Candidate Pilot set */
+  typedef struct
+  {
+    kal_uint8   numPilots;   /* number of pilots provided in list */
+    kal_uint16  pilot[CP_MAX_CANDIDATE_SET];    /* list of pilots */
+  } CandList;
+
+
+  /* Pilot lists used to define Idle pilot set*/
+  typedef struct
+  {
+    kal_uint8  nghbrSrchMode;
+    kal_uint8  numPilots;
+#ifdef MTK_CBP
+    IdleNghbrConfig  idleNghbrPilot[ SYS_CP_MAX_NEIGHBOR_LIST_PILOTS ];
+#else
+    IdleNghbrConfig  idleNghbrPilot[ CP_MAX_NEIGHBOR_SET ];
+#endif
+  } IdlePilotSet;
+
+
+  /* Pilots to be used for Idle channel change */
+  typedef struct
+  {
+    kal_bool    frequencyIncluded;
+    SysCdmaBandT band;
+    kal_uint16  frequency;
+    kal_uint8   numPilots;
+    kal_uint16  pilotPN[ CP_MAX_CH_CHANGE_LIST ];
+  } IdleChangePilotSet;
+
+
+  /* Pilot lists used to define or update the searched Pilot Sets */
+  typedef struct
+  {
+    ActiveList  active;     /* Active pilot list    */
+    CandList    candidate;  /* Candidate pilot list */
+    NghbrList   neighbor;   /* Neighbor pilot list  */
+  } PilotSet;
+
+  /* Amala K. 03/01/02 - AFLT */
+
+  /* individual pilot PILOT_PN & TIME_CORRECTION from BS ALMANAC */
+  typedef struct
+  {
+    kal_uint16  PilotPN;
+    kal_int16 TimeCorrect;
+  } AfltPilotSet;
+
+  /* AFLT Pilot list used to update the searched AFLT Pilot Sets */
+  typedef struct
+  {
+    AfltPilotSet Pilot[SYS_CP_MAX_AFLT_LIST_PILOTS];
+  } AfltPilotSetList;
+  /* Amala K. - AFLT END */
+
+  /* report content for a pilot measurement                             */
+  /* Pilot Strength measurements =  -8 * log10(PS) (8 bit resolution)   */
+  /* i.e., the WBIOS has already performed the logarithmic calculation  */
+  typedef struct
+  {
+    kal_bool    stale;
+    kal_uint16  pnPhase;
+    kal_uint16  strength;        /* Power of the pilot in Q16 linear units */
+  } PilotMeasurement;
+
+  /* pilot report structure defines a pilot measurement for each pilot in */
+  /* all lists */
+  typedef struct
+  {
+    kal_uint8   numActive;            /* number of pilots in active list */
+    kal_uint8   numCandidate;         /* number of pilots in candidate list */
+    kal_uint8   numNeighbor;          /* number of pilots in neighbor list */
+    kal_uint8   numRemaining;         /* number of pilots in remaining list */
+    PilotMeasurement    activeList[ CP_MAX_ACTIVE_SET ];
+    PilotMeasurement    candidateList[ CP_MAX_CANDIDATE_SET ];
+    PilotMeasurement    neighborList[ CP_MAX_NEIGHBOR_SET ];
+    PilotMeasurement    remainingList[CP_MAX_REMAINING_SET];
+  } PilotReport;
+
+
+  typedef struct
+  {
+    kal_uint16  pilotPN;
+    PilotMeasurement measure;
+  } HOTCPilot;
+#endif  /*_PILOTS_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace.h b/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace.h
new file mode 100644
index 0000000..99e337e
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace.h
@@ -0,0 +1,190 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * psw_dhl_trace.h
+ *
+ * Project:
+ * --------
+ *   C2K
+ *
+ * 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!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * 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 _PSW_DHL_TRACE_H
+#define _PSW_DHL_TRACE_H
+#ifndef GEN_FOR_PC
+#include "stack_config.h"
+#endif
+#include "dhl_trace.h"
+#include "protocol_section.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__DHL_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif
+#endif
+#if !defined(GEN_FOR_PC)
+#include"psw_dhl_trace_mod_cpsw_utmd.h"
+#endif
+#endif /* _PSW_DHL_TRACE_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace_mod_cpsw_utmd.json b/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace_mod_cpsw_utmd.json
new file mode 100644
index 0000000..7b4c551
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/psw_dhl_trace_mod_cpsw_utmd.json
@@ -0,0 +1,1912 @@
+{
+  "endGen": "-", 
+  "legacyParameters": {}, 
+  "module": "MOD_CPSW", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO", 
+          "Sensitive"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_WARNING"
+        ], 
+        "traceType": "DesignInfo"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_ERROR"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_FUNC"
+        ], 
+        "traceType": "DesignInfo"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Medium", 
+        "tag": [
+          "Baseline", 
+          "TRACE_STATE"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    },
+    {
+      "TRACE_SENSITIVE_USIR": {
+        "debugLevel": "High", 
+        "tag": [
+          "Baseline","USIR"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "DHL_CP_PSW_PCH_BAD_CRC_AIR_MSG_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LAYER2]PCH Bad CRC: Length %d; Type %MPchMessageTypeE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_NW_TO_MS_AIR_MSG_SYNC": {
+        "apiType": "ota", 
+        "format": "[NW->MS] C2K1XRTT Sync Message", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_NW_TO_MS_AIR_MSG_PCH": {
+        "apiType": "ota", 
+        "format": "[NW->MS] C2K1XRTT %MPchMessageTypeE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_NW_TO_MS_AIR_MSG_FCH": {
+        "apiType": "ota", 
+        "format": "[NW->MS] C2K1XRTT %MFTCMessageType", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_MS_TO_NW_AIR_MSG_ACH": {
+        "apiType": "ota", 
+        "format": "[MS->NW] C2K1XRTT %MAchMessageTypeE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_MS_TO_NW_AIR_MSG_FCH": {
+        "apiType": "ota", 
+        "format": "[MS->NW] C2K1XRTT %MRTCMessageType", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_MS_TO_NW_AIR_MSG_LOC": {
+        "apiType": "ota", 
+        "format": "[MS->NW] C2K1XRTT Reverse_IS801_msg", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "XRTT_NW_TO_MS_AIR_MSG_LOC": {
+        "apiType": "ota", 
+        "format": "[NW->MS] C2K1XRTT Forward_IS801_msg", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_ACCESS_SUSPEND": {
+        "apiType": "index", 
+        "format": "[ACC]PE_ACCESS_SUSPEND, Suspend=%d, InAccess=%d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_MAX_PROBE_SIZE": {
+        "apiType": "index", 
+        "format": "[SRBP]MAX_PROBE_SIZE, Size=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_STATE_MACHINE_EVENTS": {
+        "apiType": "index", 
+        "format": "[SRBP]STATE_MACHINE_EVENTS, State=%MSrbpAccessStateT, Event=%MSrbpAccessEventT", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_START_TA_TIMER": {
+        "apiType": "index", 
+        "format": "[SRBP]START_TA_TIMER, Timer=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_STOP_TA_TIMER": {
+        "apiType": "index", 
+        "format": "[SRBP]STOP_TA_TIMER, Reasons=%MReasonsForTA_Stop", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_STOP_ATTEMPT": {
+        "apiType": "index", 
+        "format": "[SRBP]STOP_ATTEMPT, accessState=%MSrbpAccessStateT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_FUNCTION_CALL": {
+        "apiType": "index", 
+        "format": "[SRBP]FUNCTION_CALL, function=%s", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_PARMS_1": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_PARMS_1, maxReqSeq=%d, maxRspSeq=%d, msgPsist=%d, regPsist=%d, accTmo=%d, probePnRan=%d, auth=%d, maxCapSz=%d, pamSz=%d, numStep=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_PARMS_2": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_PARMS_2, pwrStep=%d, nomPwr=%d, initPwr=%d, nomPwrExt=%d, accChan=%d, probeBkoff=%d, bkoff=%d, accessMessageBitSize=%d, PSISTs=%d, framesPerSlot=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACCESS_REQUEST": {
+        "apiType": "index", 
+        "format": "[SRBP]SRBP_ACCESS_REQUEST, max Probe Seq=%d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACCESS_RESPONSE": {
+        "apiType": "index", 
+        "format": "[SRBP]SRBP_ACCESS_RESPONSE, max Probe Seq=%d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_PWR_CORRECT": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_PWR_CORRECT, powerCorrection=%d, useCurrMip=%d, rt=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_PROBE_RETRANSMIT": {
+        "apiType": "index", 
+        "format": "[SRBP]PROBE_RETRANSMIT, Seq=%d, Probe=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_MAX_PROBE_SEQUENCE": {
+        "apiType": "index", 
+        "format": "[SRBP]MAX_PROBE_SEQUENCE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_SEQUENCE_RETRANSMIT": {
+        "apiType": "index", 
+        "format": "[SRBP]SEQUENCE_RETRANSMIT,seq=%d, bkoff=%d, rs=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_INIT_PROBE_HO": {
+        "apiType": "index", 
+        "format": "[SRBP]INIT_PROBE_HO,NumProbeHo=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_PERSISTENCE_TEST_FAIL": {
+        "apiType": "index", 
+        "format": "[SRBP]PERSISTENCE_TEST_FAIL", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_INIT_ACH": {
+        "apiType": "index", 
+        "format": "[SRBP]INIT_ACH,RN=%d, sendTime=0x%x, powerCorrection=%d, pamSize=%d, ra=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_PROBE_SENT": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_PROBE_SENT,dataLen=%d, sendTime=0x%x, powerCorrection=%d, useCurrMip=%d, pamSize=%d, RN=%d rt=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_PERSISTANCE_DELAY": {
+        "apiType": "index", 
+        "format": "[SRBP]PERSISTANCE_DELAY,delaySlots=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_LONG_CODE": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_LONG_CODE,[0]=0x%x,[1]=0x%x,[2]=0x%x,[3]=0x%x,[4]=0x%x,[5]=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACH_INIT_PWR": {
+        "apiType": "index", 
+        "format": "[SRBP]ACH_INIT_PWR,calculated init pwr=%d, prev_pwr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_MOD_PWR": {
+        "apiType": "index", 
+        "format": "[SRBP]MOD_PWR,current pwr=%d, previous pwr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_ACC_CORRECTION": {
+        "apiType": "index", 
+        "format": "[SRBP]ACC_CORRECTION,Correction=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_SET_ACC_CORR_PARMS": {
+        "apiType": "index", 
+        "format": "[SRBP]SET_ACC_CORR_PARMS,nomPwr=%d, nomPwrExt=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_RC_INTER_CORR": {
+        "apiType": "index", 
+        "format": "[SRBP]RC_INTER_CORR,correction=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SRBP_STATE_CHANGE": {
+        "apiType": "index", 
+        "format": "[SRBP]STATE_CHANGE,Current State=%MSrbpAccessStateT, Next State=%MSrbpAccessStateT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_ATTEMPT": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_ATTEMPT,maxProbeSize = %d, sizeInBits = %d, validAck = %d msgType = %d, channelType = %d, request = %d, lacLength = %d, retValue = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_RESUME": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_RESUME,maxProbeSize = %d, sizeInBits = %d, validAck = %d msgType = %d, channelType = %d,   request = %d, retValue = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_TA_TIMEOUT": {
+        "apiType": "index", 
+        "format": "[LAC]TA_TIMEOUT,maxProbeSize = %d, sizeInBits = %d, validAck = %d msgType = %d, channelType = %d,   request = %d, retValue = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_ASM_FAILURE": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_ASM_FAILURE,maxProbeSize = %d, sizeInBits = %d, validAck = %d msgType = %d, channelType = %d,   request = %d, retValue = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_MSG_LEN": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_MSG_LEN,index= %d, _acccessMsgLength = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_MSG_TO_LARGE": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_MSG_TO_LARGE,_accessMsgLength+CP_CRC_30_WIDTH = %d, > maxCapsuleSize = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_MSG_FINAL_LENGTH": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_MSG_FINAL_LENGTH,_accessMsgLength+CP_CRC_30_WIDTH = %d, =< maxCapsuleSize = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_MSG_ACTIVE_PILOTS": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_MSG_ACTIVE_PILOTS,_pilotReport = %d, activeStrength = %d, firstIsActive = %d, firstIsPTA =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_MSG_EXTRA_PILOTS": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_MSG_EXTRA_PILOTS,extraPilots = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_NO_EXTRA_PILOTS": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_NO_EXTRA_PILOTS", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_ACCESS_PILOT_REPORT": {
+        "apiType": "index", 
+        "format": "[LAC]ACCESS_PILOT_REPORT, _pilotReport =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_SET_PILOT_REPORT": {
+        "apiType": "index", 
+        "format": "[LAC]SET_PILOT_REPORT, _pilotReport =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_PILOT_MSMT_REPORT_REC": {
+        "apiType": "index", 
+        "format": "[LAC]PILOT_MSMT_REPORT_REC, _pilotReport =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAC_DB_PAY_LOAD": {
+        "apiType": "index", 
+        "format": "[LAC]DB_PAY_LOAD, maxCapSizeInBytes =%d, lacFieldWidthInBytes = %d, dbPayLoadInBytes =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_SYNC_CH": {
+        "apiType": "index", 
+        "format": "[LAYER2]SYNC_CONTROL, control =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PAGE_CH": {
+        "apiType": "index", 
+        "format": "[LAYER2]PAGE_CONTROL, control =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG1": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync Received SOM in middle of message, length=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG2": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync SYNC frame missed,, lastFrame=0x%x, currentFrame=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG3": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync Received SHORT message (< 40 bits)!,length=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG4": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync CRC failed on SYNC message, length=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG5": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync New SOM on frame, Frame=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG6": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync New SYNC Message, length=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_SYNC_MSG7": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Sync Bad sync message length, length=%d, type=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG1": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,receive SCI in middle, msglen=0x%x, msgtype=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG2": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,receive short msg(<40bits), msglen=0x%x, msgtype=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG3": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,new SCI at SysTime 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG4": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,new Pch Msg Good CRC, msglen=0x%x, msgtype=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG5": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,GPM with SCI fail, srvOpt=%d, para2=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_BUILD_PAGE_MSG6": {
+        "apiType": "index", 
+        "format": "[LAYER2]Build Page,GPM with CRC fail, srvOpt=%d, para2=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FTC_START1": {
+        "apiType": "index", 
+        "format": "[LAYER2]FTC_START,State Machine already running, ignore Start", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FTC_START2": {
+        "apiType": "index", 
+        "format": "[LAYER2]FTC_START,State Machine start", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FTC_START3": {
+        "apiType": "index", 
+        "format": "[LAYER2]FTC_START,Wait for N5m Good FTC frames", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FUNCTION_CALL1": {
+        "apiType": "index", 
+        "format": "[LAYER2]FUNCTION_CALL, l2FTCStop()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FUNCTION_CALL2": {
+        "apiType": "index", 
+        "format": "[LAYER2]FUNCTION_CALL, l2FTCFrame()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FUNCTION_CALL3": {
+        "apiType": "index", 
+        "format": "[LAYER2]FUNCTION_CALL, l2FTCHardHandoff()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FUNCTION_CALL4": {
+        "apiType": "index", 
+        "format": "[LAYER2]FUNCTION_CALL, l2FTCHardHandoffWReturnOnFailure", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FUNCTION_CALL5": {
+        "apiType": "index", 
+        "format": "[LAYER2]FUNCTION_CALL, l2RxAcknowledgementProceduresReset", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_l2FTCSM_CALL1": {
+        "apiType": "index", 
+        "format": "[LAYER2]l2FTCSM_CALL, Start, Event=%ML2FTCEvent, State=%ML2FTCState", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_l2FTCSM_CALL2": {
+        "apiType": "index", 
+        "format": "[LAYER2]l2FTCSM_CALL, No signalling traffic, Event=%ML2FTCEvent, State=%ML2FTCState", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_l2FTCSM_CALL3": {
+        "apiType": "index", 
+        "format": "[LAYER2]l2FTCSM_CALL, End, Event=%ML2FTCEvent, State=%ML2FTCState", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PREDICTED_TIME_EXPIRE_1": {
+        "apiType": "index", 
+        "format": "[LAYER2]Predicted fade time expire_1", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PREDICTED_TIME_EXPIRE_2": {
+        "apiType": "index", 
+        "format": "[LAYER2]Predicted fade time expire_2", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FADE_TIME_EXPIRE": {
+        "apiType": "index", 
+        "format": "[LAYER2]Fade time expire", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_CHECK_FTCFrame_CALL": {
+        "apiType": "index", 
+        "format": "[LAYER2]CHECK_FTCFrame_CALL, frame=0x%x, mux=0x%x, cat=%d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL1": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, rx SOM => New FTC signalling msg", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL2": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, No SOM => dump FTC sig frame", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL3": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, Received SOM in middle,rx SOM => New FTC signalling msg", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL4": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, No SOM => continuation sig msg", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL5": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, Received SHORT msg(< 40 bits)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL6": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, CRC Failed!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL7": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, Still building msg", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PROC_FTCFrame_CALL8": {
+        "apiType": "index", 
+        "format": "[LAYER2]processFTCFrame, Zero length msg!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_FTC_BUFFER_TO_MSG": {
+        "apiType": "index", 
+        "format": "[LAYER2]FTC_BUFFER_TO_MSG, msgLength=%d, msgType=%MFTCMessageType, ACK_SEQr=%d, MSG_SEQr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_DUPLICATE_MSG1": {
+        "apiType": "index", 
+        "format": "[LAYER2]duplicate TCMsg:Acknowledged", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_DUPLICATE_MSG2": {
+        "apiType": "index", 
+        "format": "[LAYER2]duplicate TCMsg:Unacknowledged", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_ENG_CALLBACK_PCH_MSG": {
+        "apiType": "index", 
+        "format": "[LAYER2]CALLBACK_PCH_MSG, pageMsg->ackReceived = %d, pageMsg->length = %d, pageMsg->type = %d, pageMsg->sduOffset = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_LAYER2_PAG_STATS": {
+        "apiType": "index", 
+        "format": "[LAYER2]PAG STATS, PAG_1(rcvd pch msgs)=0x%x, PAG_2(bad pch msgs)=0x%x,                                         PAG_3(addressed pch msgs)=0x%x,PAG_4(rcvd PCH HalfFrames)=0x%x,                                         PAG_5(valid PCH HalfFrames)=0x%x, PAG_6(PCH Lost Times)=0x%x,                                         PAG_7(Idle Handoff Times)=0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_CALLBACK_GEM": {
+        "apiType": "index", 
+        "format": "[CALLBACK]GEM, FTC Message type=%MFTCMessageType", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_CALLBACK_FUNCTION_CALL": {
+        "apiType": "index", 
+        "format": "[CALLBACK]FUNCTION_CALL, Info=%s, type=%MFTCMessageType", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_MTXSM_CALL1": {
+        "apiType": "index", 
+        "format": "[TC_MTX]MTXSM_CALL, msgTransmitter State Machine Start, Event=%MMtxEvent, State=%MMtxState", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_MTXSM_CALL2": {
+        "apiType": "index", 
+        "format": "[TC_MTX]MTXSM_CALL, msgTransmitter State Machine End, Event=%MMtxEvent, State=%MMtxState", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_FUNCTION_CALL1": {
+        "apiType": "index", 
+        "format": "[TC_MTX]MTX_FUNCTION_CALL,startAC(), minSigBitsPerFrame=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_FUNCTION_CALL2": {
+        "apiType": "index", 
+        "format": "[TC_MTX]MTX_FUNCTION_CALL,stopAC(), Para=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_FUNCTION_CALL3": {
+        "apiType": "index", 
+        "format": "[TC_MTX]MTX_FUNCTION_CALL,ackProceduresResetAC(), Para=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_RXMSGINDAC1": {
+        "apiType": "index", 
+        "format": "[TC_MTX]rxMsgIndAC, Received Ack for Msg Seq, ACK_SEQr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_RXMSGINDAC3": {
+        "apiType": "index", 
+        "format": "[TC_MTX]rxMsgIndAC, Queued Ack for MSG_SEQr, ack.MSG_SEQr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_RXMSGINDAC4": {
+        "apiType": "index", 
+        "format": "[TC_MTX]rxMsgIndAC, AckQ overflow, ack.MSG_SEQr=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_RXMSGINDAC5": {
+        "apiType": "index", 
+        "format": "[TC_MTX]rxMsgIndAC, Delay RetryCount,Previous RetryCount: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_TXMSGCHECK1": {
+        "apiType": "index", 
+        "format": "[TC_MTX]txMsgCheck,Exceed window size, Para=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_TXMSGCHECK2": {
+        "apiType": "index", 
+        "format": "[TC_MTX]txMsgCheck,Hasn't exceed window size, Para=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_FUNCTION_CALL_INFO": {
+        "apiType": "index", 
+        "format": "[TC_MTX]txMsg(), RTC Acknowledge Fail,stop Traffic Channel,MSG_SEQ_ACK: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_PUTL2FIELDS1": {
+        "apiType": "index", 
+        "format": "[TC_MTX]putL2Fields,Tx RTC Message Layer 2 Fields ACK_SEQ: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_PUTL2FIELDS2": {
+        "apiType": "index", 
+        "format": "[TC_MTX]putL2Fields,Retransmission - MSG_SEQ_ACK: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_PUTL2FIELDS3": {
+        "apiType": "index", 
+        "format": "[TC_MTX]putL2Fields,First Time - MSG_SEQ_ACK: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_PUTL2FIELDS4": {
+        "apiType": "index", 
+        "format": "[TC_MTX]putL2Fields,First Time - MSG_SEQ_NOACK: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_MTX_PUTL2FIELDS5": {
+        "apiType": "index", 
+        "format": "[TC_MTX]putL2Fields,RTC Tx Msg Length: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_PAGE_CHECK_RECORD_1": {
+        "apiType": "index", 
+        "format": "[PAGE]PCH Message Address match, ACK_SEQ=%d, MSG_SEQ=%d, VALID_ACK=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_PAGE_CHECK_RECORD_2": {
+        "apiType": "index", 
+        "format": "[PAGE]Processing received PCH Order/Message", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_PAGE_DUPLICATE_CHECK": {
+        "apiType": "index", 
+        "format": "[PAGE]Duplicate Message detected, MSG_SEQ:%d ACK_REQ:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_PAGE_RAW_DUMP": {
+        "apiType": "raw", 
+        "format": "[PAGE]PAGE_RAW_DUMP", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PE_SYNC_RAW_DUMP": {
+        "apiType": "raw", 
+        "format": "[SYNC]SYNC_RAW_DUMP", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_STATE": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_STATE, state:%MRsvasStateT, prevstate:%MRsvasStateT, tempState:%MRsvasTempStateT", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_TEMP_STATE": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_TEMP_STATE, state:%MRsvasStateT, old tempState:%MRsvasTempStateT, new tempState:%MRsvasTempStateT", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_PSW_IDLE_ENTRY_STATE": {
+        "apiType": "index", 
+        "format": "[PSW_IDLE] PSW_IDLE_ENTRY_STATE, currIdleState=%MCpIdleSubStateT, l1Asleep=%Mkal_bool, event=%MPeRunEngineEvent", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_PSW_IDLE_EXIT_STATE": {
+        "apiType": "index", 
+        "format": "[PSW_IDLE] PSW_IDLE_EXIT_STATE, nextIdleState=%MCpIdleSubStateT, l1Asleep=%Mkal_bool, nextState=%MCPState", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_PSW_ACCESS_ENTRY_STATE": {
+        "apiType": "index", 
+        "format": "[PSW_ACCESS] PSW_ACCESS_ENTRY_STATE, currentState=%MCPState, event=%MPeRunEngineEvent", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_PSW_ACCESS_EXIT_STATE": {
+        "apiType": "index", 
+        "format": "[PSW_ACCESS] PSW_ACCESS_EXIT_STATE, nextState=%MCPState", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DHL_CP_REG_CONTROL_PARM": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_CONTROL_PARM, regInitTimerDisabled=%Mkal_bool, TMRegEnabled=%Mkal_bool, regEnabled=%Mkal_bool,regInProgress=%Mkal_bool, registered=%Mkal_bool, Irat1xRegEnabled=%Mkal_bool,                                            cfgCurrent=%Mkal_bool, SafetyNetRegistration=%Mkal_bool, parmChanged=%Mkal_bool,                                            TermModeParmChangeReg=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_REG_CONFIGURE": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_CONFIGURE, regPrd=%d, TimerBasedcounterEnabled=%Mkal_bool, totalZones=%d,ZoneBasedcounterEnabled=%Mkal_bool, regDist=%d, powerUpReg=%Mkal_bool, parameterReg=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_REG_ZONE_LIST": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_ZONE_LIST, REG_ZONE=%d, SID=%d, NID=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_REG_SID_NID_LIST": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_SID_NID_LIST, SID=%d, NID=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_REG_REGENABLED": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_REGENABLED, MobTermMap=%d, IsMSLocked=%Mkal_bool, WaitCSSValRsp=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_REG_THROTTLING": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_THROTTLING, regThrottlingPhase=%d, noOfRegAttempts=%d, deltaTime=%d,                                          regThrottlingNumAttempts=%d, regThrottlingDelays=%d, regThrottlingNumPhases=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_PSW_MULTI_BAND": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_PSW_MULTI_BAND, band=%d, channel=%d, block=%d, %MPswMultiBandTraceIds", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_KEY_PARAM_PART1": {
+        "apiType": "index", 
+        "format": "state:%MRsvasStateT, prevstate:%MRsvasStateT, tempState:%MRsvasTempStateT, currService.rsvasId:%MC2kRsvasIdT, currService.servType:%Mrsvas_service_type_enum, PSTransferFromDO:%Mkal_bool, pendingOccupyReq:%Mkal_bool, occupyReq.rsvasId:%MC2kRsvasIdT, occupyReq.servType:%Mrsvas_service_type_enum,", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_KEY_PARAM_PART2": {
+        "apiType": "index", 
+        "format": "occupyIndNotifyId:%MC2kRsvasIdT, pendingRelReq:%Mkal_bool, releaseReq.rsvasId:%MC2kRsvasIdT, releaseReq.servType:%Mrsvas_service_type_enum, servOwnerSimId:%Mrsvas_sim_enum, currC2kSimId:%Mrsvas_sim_enum, rttBorrowDOService:%Mkal_bool,  waittingProcedure:%Mmspm_procedure_enum, servAbortAction:%Mrsvas_abort_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_OCCUPY": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_OCCUPY, occupyReq.rsvasId:%MC2kRsvasIdT, occupyReq.servType:%Mrsvas_service_type_enum, occupyReq.reqType:%Mcas_rsvas_request_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_OCCUPY_RESULT": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_OCCUPY_RESULT, _occupyResult:%Mkal_bool, occupyIndNotifyId:%MC2kRsvasIdT, tempState:%MRsvasTempStateT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_RELEASE": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_RELEASE, releaseReq.rsvasId:%MC2kRsvasIdT, releaseReq.servType:%Mrsvas_service_type_enum, releaseReq.reqType:%Mcas_rsvas_request_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_REMOVE": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_REMOVE, releaseReq.rsvasId:%MC2kRsvasIdT, releaseReq.servType:%Mrsvas_service_type_enum, releaseReq.reqType:%Mcas_rsvas_request_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_TRANSFER": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_TRANSFER, old rsvasId:%MC2kRsvasIdT, new rsvasId:%MC2kRsvasIdT, servType:%Mrsvas_service_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_IS_OCCUPY": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_IS_OCCUPY, result:%Mkal_bool, currService.rsvasId:%MC2kRsvasIdT, currService.servType:%Mrsvas_service_type_enum, PSTransferFromDO:%Mkal_bool, query rsvasId:%MC2kRsvasIdT, query servType:%Mrsvas_service_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_RUN_ENGINE": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_RUN_ENGINE_START, event:%MRsvasEventT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_CHANGE_SIM_INDEX": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_CHANGE_SIM_INDEX, old sim index:%Mrsvas_sim_enum, new sim index:%Mrsvas_sim_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_REPORT_EVENT": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_REPORT_EVENT, event:%MCallProcessingEventT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_REPORT_STATUS": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_REPORT_STATUS, new pe state:%MCPState, prev pe state:%MCPState", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SRVOP_SERVICE_CONFIG_VALIDATION": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_SRVOP_SERVICE_CONFIG_VALIDATION, validateOnly:%MSCValidationAction, numConRec:%d, serviceOption:%MSysServiceOptionT, CurrentConnectedSO:%MSysServiceOptionT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_NEG_SERVICE_CONFIG_VALIDATION": {
+        "apiType": "index", 
+        "format": "[SCC_NEG] SCC_NEG_SERVICE_CONFIG_VALIDATION, valOnly:%Mkal_bool, _SvcType:%MSysServiceTypeT, temp_serviceType:%MSysServiceTypeT, result:%MSCResponse", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_NEG_SET_CURRENT_TYPE": {
+        "apiType": "index", 
+        "format": "[SCC_NEG] SCC_NEG_SET_CURRENT_TYPE, new type:%MSysServiceTypeT, old type:%MSysServiceTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PE_ENGINE_EVENT": {
+        "apiType": "index", 
+        "format": "[PE] PE_ENGINE_EVENT, curr state:%MCPState, event type:%MPeRunEngineEvent", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PE_START_TIMER": {
+        "apiType": "index", 
+        "format": "[PE] PE_START_TIMER, index:%d, timer id:%MCPTimerId, interval(ms):%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PE_STOP_TIMER": {
+        "apiType": "index", 
+        "format": "[PE] PE_STOP_TIMER, timer id:%MCPTimerId", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PE_TIMER_EXPIRE": {
+        "apiType": "index", 
+        "format": "[PE] PE_TIMER_EXPIRE, index:%d, timer id:%MCPTimerId", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_GET_PARAM": {
+        "apiType": "index", 
+        "format": "[PE] PSW_GET_PARAM, parmOpId:%MPswParmOperationId, opType:%MPswParmOperationType", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_ACCESS_EVENT": {
+        "apiType": "index", 
+        "format": "[PSW_ACCESS] PSW_ACCESS_EVENT, accessEvent=%s, accessReason=%MAccessReasonT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_DEBUG_INFO": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_DEBUG_INFO, Function:%s, %x, %x, %x, %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_DEBUG_TRACE": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_DEBUG_TRACE, Function:%s, %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SECURITY_DEBUG_INFO": {
+        "apiType": "index", 
+        "format": "[PSW] SECURITY_DEBUG_INFO, Function:%s, Line:%d, %x, %x, %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_CALL_PARM": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_CALL_PARM, Irat1xRegEnabled:%Mkal_bool, NoService:%Mkal_bool, reOrig:%Mkal_bool, PswIsVoiceServiceAllowed:%Mkal_bool, pscState:%d, E911mode:%Mkal_bool, ValOpMode:%MOperationModeT, Hdm: %MHybridPrefModeT, UimModeDisabled:%Mkal_bool, UimCardStatus:%MUiccCardStatusType, FactoryMode:%Mkal_bool, SRtimerActive:%Mkal_bool, 1XMO_BKOFFtimerActive:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_CSFB_EVENT": {
+        "apiType": "index", 
+        "format": "[PSW_VOICE] PSW_CSFB_EVENT, isWarning:%Mkal_bool, Function:%s, Line:%d, csfbState:%MCsfbState", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_DEBUG_FUNC_INFO": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_DEBUG_FUNC_INFO, Func:%s, Line:%d, Info:%s, %x, %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_CP_INIT_INVALID_INDICATION": {
+        "apiType": "index", 
+        "format": "[PSW_SD] CP_INIT_INVALID_INDICATION, Invalid indication in cpSystemDetermination(),indication:%d, Function:%s, Line:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_CP_INIT_LOC_INVALID_PPM": {
+        "apiType": "index", 
+        "format": "[PSW_INIT] CP_INIT_LOC_INVALID_PPM, AFLT should not be done in Init state,%d, Function:%s, Line:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_ERR_CARRIER_BAND_MISMATCH": {
+        "apiType": "index", 
+        "format": "[PSW_ARCHIVE] PSW_ERR_CARRIER_BAND_MISMATCH, code:%d, Function:%s, Line:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_REG_WARNING": {
+        "apiType": "index", 
+        "format": "[PSW_REG] PSW_REG_WARNING, Function:%s, Line:%d, value:%Mkal_bool", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_C2K_RSVAS_WARNING": {
+        "apiType": "index", 
+        "format": "[C2K_RSVAS] C2K_RSVAS_WARNING, Function:%s, Line:%d, value 1:%d, value 2:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_WARNING": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_WARNING, Function:%s, Line:%d, value:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_SMS, Function:%s, Line:%d, value:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_WARNING_NOTE": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_WARNING_NOTE, Function:%s, Line:%d, Note:%s", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_CP_REG_INIT_TIMER_EXPIRED": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REG_INIT_TIMER_EXPIRED, Init timer expired, powerUpTimerStarted=%Mkal_bool", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "DHL_CP_REGCOUNT_ENABLE": {
+        "apiType": "index", 
+        "format": "[PSW_REG] CP_REGCOUNT_ENABLED, TimerBasedcounterEnabled=%Mkal_bool, regCount=%d, ZoneBasedcounterEnabled=%Mkal_bool", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "LOC_PPM_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_PPM_STATE] ppm state=%08x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_PRM_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_PRM_STATE] prm state=%08x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_CHECK_ALM_EPH_EXP": {
+        "apiType": "index", 
+        "format": "[LOC_CHECK_ALM_EPH_EXP] bAlmdataUpdateReq=%Mkal_bool,bEphdataUpdateReq=%Mkal_bool, bLocReqMsgToSend=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SEND_ALM_EPH_UPDATE": {
+        "apiType": "index", 
+        "format": "[LOC_SEND_ALM_EPH_UPDATE] session id=%d,bAlmdataUpdateReq=%Mkal_bool,bEphdataUpdateReq=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SET_AGPS_FLOW": {
+        "apiType": "index", 
+        "format": "[LOC_SET_AGPS_FLOW] InstanceId=%d, Sess_Id=%d,FixMode=%MGPS_FIX_MODE, NumFixes=%d, Msaflow=%MMSA_FLOW, Performance=%d,HorizontalAccuracy=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_STATUS_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LOC_STATUS_TRACE_ID] privacy mode=%d,Cust Id=%d,PRM state=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_MSA_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_MSA_STATE], msa state=%MMSA_FLOW", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SET_AGPS_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_SET_AGPS_STATE],InstanceId=%d,Sess_Id=%d,FixMode=%MGPS_FIX_MODE,oldEvent=%d,Msastate=%MMSA_STATES,event=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_TIMER_ID": {
+        "apiType": "index", 
+        "format": "[LOC_TIMER_ID], Timer ID:%d, function:%s, line:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_TIMER_START": {
+        "apiType": "index", 
+        "format": "[LOC_TIMER_START], timer id = %d, interval=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_TIMER_STOP": {
+        "apiType": "index", 
+        "format": "[LOC_TIMER_STOP], timer id = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SESSION_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_SESSION_INFO],InstanceId=%d,Sess_Id=%d,FixMode=%MGPS_FIX_MODE,NumFixed=%d,TimeBFixes=%d,HorizontalAccuracy=%d,VerticalAccuracy=%d,PseudorangeAccuracy=%d,Performance=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_OUTPUT_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_OUTPUT_INFO],InstanceId=%d, Sess_Id=%d, FixMode=%MGPS_FIX_MODE, LocSMSsendOK=%d,LocTCPsendOK=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_OUT_PUT_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_OUT_PUT_STATE], Loc output state=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SEND_OUT_PKT_DATA": {
+        "apiType": "index", 
+        "format": "[LOC_SEND_OUT_PKT_DATA],InstanceId=%d,Sess_Id=%d,OutstandingREQ=%d, OutStandingRsp=%d, NumReqOutstanding=%d, NumRspOutstanding=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_REV_TCBP_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LOC_REV_TCBP_TRACE_ID], TCPsendOK=%d, TcpSendPktSessionId=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_TCP_RCV_STATE": {
+        "apiType": "index", 
+        "format": "[LOC_TCP_RCV_STATE], TCP RCV state=%x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_AFLT_MEMT_MSG": {
+        "apiType": "index", 
+        "format": "[LOC_AFLT_MEMT_MSG],bPpmValEnabled=%Mkal_bool,SessId=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_MSG_CONFIRM_IND": {
+        "apiType": "index", 
+        "format": "[LOC_MSG_CONFIRM_IND],SMSsendOK=%Mkal_bool, SmsSendPktSessionId=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_DISCONNECT_IND": {
+        "apiType": "index", 
+        "format": "[LOC_DISCONNECT_IND],UpOnTraffic=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_CONNECT_IND": {
+        "apiType": "index", 
+        "format": "[LOC_CONNECT_IND], CP connnected", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SESSION_DONE": {
+        "apiType": "index", 
+        "format": "[LOC_SESSION_DONE], instance Id=%d,Status=%d,fix mode=%MGPS_FIX_MODE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_CONN_STATUS": {
+        "apiType": "index", 
+        "format": "[LOC_CONN_STATUS], success=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_RESTART_ID": {
+        "apiType": "index", 
+        "format": "[LOC_RESTART_ID], state = %08x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_ALM_EPH_CHECK_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LOC_ALM_EPH_CHECK_TRACE_ID],bAlmdataUpdateReq=%Mkal_bool, bEphdataUpdateReq=%Mkal_bool, bLocReqMsgToSend=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_PPM_MSM_REQ_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LOC_PPM_MSM_REQ_TRACE_ID],LECSendOK=%Mkal_bool, LecReadyInd=%Mkal_bool, PPMId=%d, PPMInfo[0].SessID=%d, PPMInfo[1].SessID=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_PRM_MSM_REQ_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[LOC_PRM_MSM_REQ_TRACE_ID],LECSendOK=%Mkal_bool, LecReadyInd=%Mkal_bool, LocL1dSendOK=%Mkal_bool, PPMInfo[0].SessID=%d, PPMInfo[1].SessID=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_BS_PROV_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_BS_PROV_INFO],BS_CAPABILITIES=%MLocSrvTraceIds, Sess_Id=%d, BSRevNo=%d, BS_Cap_GPS=%d, BS_Cap_AFLT=%d, BS_Cap_AutoLoc=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_BS_REJECT_RECEIVED": {
+        "apiType": "index", 
+        "format": "[LOC_BS_REJECT_RECEIVED],BS_REJECT_RECEIVED=%MLocSrvTraceIds, Sess_Id=%d, RejMSElement=%MMS_ReqTypes, RejReason=%MLoc_RejectReason", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_BS_RESPONSE_TYPE": {
+        "apiType": "index", 
+        "format": "[LOC_BS_RESPONSE_TYPE],RspType=%MBS_RspTypes", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_BS_LOCATION_RSP_RCVD": {
+        "apiType": "index", 
+        "format": "[LOC_BS_LOCATION_RSP_RCVD],BS_LOCATION_RSP_RCVD=%MLocSrvTraceIds, TimeRefCDMA=%d, Height=%d, Heading=%d, VelocityHor=%d, VelocityVer=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_ASSIS_DATA_DONE": {
+        "apiType": "index", 
+        "format": "[LOC_ASSIS_DATA_DONE],id=%d,part info=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_ALM_EHP_UPDATE_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_ALM_EHP_UPDATE_INFO],AssistDataUpdateRcv=%d,AssistDataUpdate=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_RCV_RSP_MSG_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_RCV_RSP_MSG_INFO],InstanceId=%x,Sess_Id=%x,RspType=%MBS_RspTypes,OutstandingRsp=%d,NumRspOutstanding=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_RCV_REQ_MSG_INFO": {
+        "apiType": "index", 
+        "format": "[LOC_RCV_REQ_MSG_INFO],InstanceId=%x,Sess_Id=%x,ReqType=%MBS_ReqTypes,OutstandingREQ=%d,NumReqOutstanding=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SESSION_ID": {
+        "apiType": "index", 
+        "format": "[LOC_SESSION_ID],Sessino Id = %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SERV_SESS_HEADER_DUMP": {
+        "apiType": "index", 
+        "format": "[LOC_SERV_SESS_HEADER_DUMP],Sess_Start=%Mkal_bool,Sess_End=%Mkal_bool,Sess_Source=%MSessSourceType,Sess_Tag=%x,Sess_Id=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SERV_SESS_REQ_DUMP": {
+        "apiType": "index", 
+        "format": "[LOC_SERV_SESS_REQ_DUMP],NumReqOutstanding=%x,Num_Req=%d,Req_Len=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SERV_SESS_RSP_DUMP": {
+        "apiType": "index", 
+        "format": "[LOC_SERV_SESS_RSP_DUMP],Num_Rsp=%d,Rsp_Len=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SERV_SESS_AFLT_DUMP": {
+        "apiType": "index", 
+        "format": "[LOC_SERV_SESS_AFLT_DUMP],PPMId=%d,Msastate=%MMSA_STATES,NumFixes=%d,NumPilots=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SERV_SESS_AGPS_DUMP": {
+        "apiType": "index", 
+        "format": "[LOC_SERV_SESS_AGPS_DUMP],Msastate=%MMSA_STATES,NumFixes=%d,length=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_CLR_PRM_STATUS": {
+        "apiType": "index", 
+        "format": "[LOC_CLR_PRM_STATUS],PRMstate=%MPRM_STATES,Flag=%Mkal_bool,LECSendOK=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_CLR_PPM_STATUS": {
+        "apiType": "index", 
+        "format": "[LOC_CLR_PPM_STATUS],PPMId=%x,L1dSendOK=%Mkal_bool,SessID_0=%x,SessID_1=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_GPS_READY": {
+        "apiType": "index", 
+        "format": "[LOC_GPS_READY],LECSendOK=%Mkal_bool,LecReadyInd=%Mkal_bool,L1dSendOK=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "LOC_SESSION_INVALID": {
+        "apiType": "index", 
+        "format": "[LOC_SESSION_INVALID] session is NULL or invalid", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_UNEXPECTED_EVENT": {
+        "apiType": "index", 
+        "format": "[LOC_UNEXPECTED_EVENT] event=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_SESS_NOT_FOUND": {
+        "apiType": "index", 
+        "format": "[LOC_SESS_NOT_FOUND] session handler=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_INVALID_PPM": {
+        "apiType": "index", 
+        "format": "[LOC_INVALID_PPM] fix mode=%MGPS_FIX_MODE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_INVALID_PPM_ID": {
+        "apiType": "index", 
+        "format": "[LOC_INVALID_PPM_ID] ppm id = %08x", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_INVALID_RESPONSE_TYPE": {
+        "apiType": "index", 
+        "format": "[LOC_INVALID_RESPONSE_TYPE] RspType = %MBS_RspTypes", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "LOC_UNEXPECTED_PARAM": {
+        "apiType": "index", 
+        "format": "[LOC_UNEXPECTED_PARAM],param = %x", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_OTA_UIM_STATUS": {
+        "apiType": "index", 
+        "format": "[PSW_OTA] OTA_UIM_STATUS, function=%MUimFunction, value=%02X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_OTA_ERR_PARM_GENERAL_FAIL": {
+        "apiType": "index", 
+        "format": "[PSW_OTA] OTA_ERR_PARM_GENERAL_FAIL, OTAPAStart=%MBoolean, Function:%s, Line:%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_GENERAL_WARNING": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] General Warning %s, %x", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_SEQ_NUM": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] tlAseSendMsgReq seqNum = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_CANCEL_ID": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] teleserviceId %d, Cancelling Message %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_BCAST_PARAM": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] smsUiBCastConnect: Service Cat Mask %d, Service Cat Mask %d, Min Priority %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_CONFIRM": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] smsL2MsgConfirm success %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_PRINT": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_TELESRV_ID": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] ASE %d received message from TL", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_TIMER_ID": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] Timer ID:%d, function:%s, line:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_SMS_INFO": {
+        "apiType": "index", 
+        "format": "[PSW_SMS] teleservice id:%d, SendOnTraffic:%d, MsgId:%d, UserAck:%d, ReadAck:%d, DeliverAck:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_TST_NST_GENERAL_TRACE": {
+        "apiType": "index", 
+        "format": "[PSW_NST] PSW_TST_NST_GENERAL, Data=%04X,%04X,%04X,%04X,%04X,%04X,%04X,%04X!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_PSW_TST_NST_STATE_TRACE": {
+        "apiType": "index", 
+        "format": "[PSW_NST] PSW_TST_NST_STATE, PerNstState=%MNstState, CurNstState=%MNstState!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_CPC_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MCpcStates <- %MCpcStates, %MCpcEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_CPC_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MCpcStates, %MCpcEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_DBC_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MDbcStates <- %MDbcStates, %MDbcEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_DBC_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MDbcStates, %MDbcEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_VSC_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MVscStates <- %MVscStates, %MVscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_VSC_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MVscStates, %MVscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_PSC_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId]%MPscState <- %MPscState, %MPscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_PSC_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MPscState, %MPscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_LSC_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MLscStates <- %MLscStates, %MLscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_LSC_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %MLscStates, %MLscEvents, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_OTHER_STATE_CHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %d <- %d, %d, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_OTHER_STATE_UNCHANGED_TRACE_ID": {
+        "apiType": "index", 
+        "format": "[%MSccModuleId] %d, %d, %MFsmEventTypeT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_ADD_TYPE": {
+        "apiType": "index", 
+        "format": "[SCC] ADD, new svcType=%MSysServiceTypeT, current svcType = %MSysServiceTypeT,NegType = %MNegTypes", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_ADD_MCC": {
+        "apiType": "index", 
+        "format": "[SCC] ADD, CT = %d, MCC = %d, numConRec = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_ORIG_CONN_TYPE": {
+        "apiType": "index", 
+        "format": "[SCC] Orig_conn, new svcType=%MSysServiceTypeT, NegType = %MNegTypes,CT = %d, MCC = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_PSC_SET_STATE": {
+        "apiType": "index", 
+        "format": "[SCC PSC STATE] %MPscState <- %MPscState", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "DHL_SCC_PSC_SC_VALIDATE": {
+        "apiType": "index", 
+        "format": "[SCC PSC]Service Config Validate result rtnStatus = %d, rev= %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SCC_SERVICE_OPTION_DISABLED_ID": {
+        "apiType": "index", 
+        "format": "[SCC Warning] service option disable,prefSO= %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "DHL_PSW_DEBUG_INFO_USIR": {
+        "apiType": "index", 
+        "format": "[PSW] PSW_DEBUG_INFO, Function:%s, %S, %S", 
+        "traceClass": "TRACE_SENSITIVE_USIR"
+      }
+    },
+    {
+      "DHL_SECURITY_DEBUG_INFO_USIR": {
+        "apiType": "index", 
+        "format": "[PSW] SECURITY_DEBUG_INFO, Function:%s, %S, %S, %S", 
+        "traceClass": "TRACE_SENSITIVE_USIR"
+      }
+    }    
+  ], 
+  "traceFamily": "PS", 
+  "userModule": ""
+}
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/psw_msg_struct.h b/mcu/interface/protocol/as_c2k/1xrtt/psw_msg_struct.h
new file mode 100644
index 0000000..49a6840
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/psw_msg_struct.h
@@ -0,0 +1,2121 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+#ifndef _PSW_MSG_STRUCT_H
+#define _PSW_MSG_STRUCT_H
+
+/*****************************************************************************
+*
+* FILE NAME   :psw_msg_struct.h
+*
+* DESCRIPTION :
+*
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "pswapi.h"
+#include "l1dapi.h"
+#include "valdbmapi.h"
+#include "cptimer.h"
+
+/* PSW Messages PSW_CMD_STATUS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswCmdStatusMsgT msg;
+} psw_cmd_status_msg_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    LmdGetDebugScrnInfoResponseT msg;
+} psw_debug_scrn_l1d_res_msg_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswForwardSyncChanFrameMsgT msg;
+} psw_forward_sync_chan_frame_msg_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+	PswForwardPageChanFrameMsgT msg;
+} psw_forward_page_chan_frame_msg_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+	PswDschFrameMsgT  msg;
+} psw_dsch_chan_frame_msg_struct;
+
+
+/*PSW message begin */
+/* from VAL - SMS related */
+#ifdef LGT_EXTENSIONS
+/* PSW_SMS_UNKNOWN_CONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsUnknownParmsMsgT msg;
+} psw_sms_unknown_connect_msg_struct;
+
+/* PSW_SMS_UNKNOWN_DISCONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_sms_unknown_disconnect_msg_struct;
+
+/* PSW_SMS_UNKNOWN_PARMS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsUnknownParmsMsgT msg;
+} psw_sms_unknown_params_msg_struct;
+#endif
+
+/* PSW_SMS_PREF_SRV_OPT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsPrefSrvOptMsgT msg;
+} psw_sms_pref_srv_opt_msg_struct;
+
+/* PSW_SMS_CONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsConnectMsgT msg;
+} psw_sms_connect_msg_struct;
+
+/* PSW_SMS_DISCONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsDisconnectMsgT msg;
+} psw_sms_disconnect_msg_struct;
+
+/* PSW_SMS_BCAST_CONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsBCastParmsMsgT msg;
+} psw_sms_bcast_connect_msg_struct;
+
+/* PSW_SMS_BCAST_DISCONNECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_sms_bcast_disconnect_msg_struct;
+
+
+/* PSW_SMS_BCAST_PARMS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsBCastParmsMsgT msg;
+} psw_sms_bcast_parms_msg_struct;
+
+/* PSW_SMS_SUBMIT_PARMS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsSubmitParmsMsgT msg;
+} psw_sms_submit_parms_msg_struct;
+
+/* PSW_SMS_SUBMIT_DATA_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsUserDataMsgT msg;
+} psw_sms_submit_data_msg_struct;
+
+/* PSW_SMS_CANCEL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsCancelMsgT msg;
+} psw_sms_cancel_msg_struct;
+
+/* PSW_SMS_ACK_PARMS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsAckMsgT msg;
+} psw_sms_ack_parms_msg_struct;
+
+/* PSW_SMS_ACK_DATA_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsUserDataMsgT msg;
+} psw_sms_ack_data_msg_struct;
+
+/* PSW_SMS_TERMINAL_STATUS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsTerminalStatusMsgT msg;
+} psw_sms_terminal_status_msg_struct;
+
+/* PSW_SMS_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_timer_expired_msg_struct;
+
+/* PSW_SMS_RETX_AMOUNT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsRetxAmountMsgT msg;
+} psw_sms_retx_amount_msg_struct;
+
+/* PSW_SMS_CAUSE_CODE_SET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsCauseCodeMsgT msg;
+} psw_sms_cause_code_set_msg_struct;
+
+/* PSW_SMS_REPLY_TL_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsReplyTlAckMsgT msg;
+} psw_sms_reply_tl_ack_msg_struct;
+
+/* PSW_SMS_TLACK_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSMSTlackReqMsgT msg;
+} psw_sms_tlack_req_msg_struct;
+
+
+/* PSW_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_timer_expired_msg_struct;
+
+/* PSW_SMS_PREF_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsPrefReqMsgT msg;
+} psw_sms_pref_req_msg_struct;
+
+/* PSW_SMS_REL_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_sms_rel_req_msg_struct;
+
+/* PSW_SMS_TX_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsTxReqMsgT msg;
+} psw_sms_tx_req_msg_struct;
+
+
+/* PSW_SMS_MOREL_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_morel_timer_expired_msg_struct;
+
+
+
+/* PSW_SMS_RESEND_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_resend_timer_expired_msg_struct;
+
+/* PSW_SMS_MMS_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_mms_timer_expired_msg_struct;
+
+/* MSG_ID_PSW_UIM_SMS_CAP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimGetSmsCapRspMsgT msg;
+}psw_uim_sms_cap_msg_struct;
+
+/* MSG_ID_PSW_SMS_RETRY_PERIOD_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_retry_period_timer_expired_msg_struct;
+
+/* MSG_ID_PSW_IMS_SMS_READY_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_ims_sms_ready_msg_struct;
+
+/* MSG_ID_PSW_IMS_SMS_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_ims_sms_rsp_msg_struct;
+
+/* MSG_ID_PSW_IMS_SMS_NOTIFY_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_ims_sms_notify_msg_struct;
+
+/* PSW_SET_MULTI_SMS_MODE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSMSModeMsgT msg;
+} psw_set_multi_sms_mode_msg_struct;
+
+/* PSW_SMS_BROADCAST_EXPECTED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsBroadcastExpectedMsgT msg;
+} psw_sms_broadcast_expected_msg_struct;
+
+/* PSW_SMS_MT_DATA_BURST_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsMtDataBurstMsgT msg;
+} psw_sms_mt_data_burst_msg_struct;
+
+/* MSG_ID_PSW_VAL_PREF_VOICE_SERVICEOPTION_SET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_val_pref_voice_serviceoption_set_msg_struct;
+
+/* MSG_ID_PSW_VAL_REG_RESUME */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_val_reg_resume_struct;
+
+/* MSG_ID_PSW_SMS_CBS_INFO_CFG  */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSmsCbsInfoT msg;
+} psw_sms_cbs_info_cfg_struct;
+
+/* MSG_ID_PSW_VAL_SET_SO_SUPPORT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetSoSupportMsgT msg;
+} psw_val_set_so_support_msg_struct;
+
+/* MSG_ID_PSW_SEND_SMS_CONFIRM_MSG */
+#ifdef MTK_PLT_ON_PC_UT
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSendSmsConfirmMsgT msg;
+}psw_send_sms_confirm_msg_struct;
+#endif
+
+/* PSW_SMS_WAIT_L3ACK_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTimerExpiredMsgT msg;
+} psw_sms_wait_l3ack_timer_expired_msg_struct;
+
+
+/* from DBM */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* PSW_GET_NAM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswGetNamMsgT msg;
+} psw_get_nam_msg_struct;
+
+/* PSW_NAM_CHANGED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswNamChangedMsgT msg;
+} psw_nam_changed_msg_struct;
+
+/* from R-UIM */
+/* PSW_UIM_GET_NAM_DATA_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimGetNamDataRspMsgT msg;
+} psw_uim_get_nam_data_msg_struct;
+
+/* PSW_UIM_UPDATE_NAM_DATA_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimUpdateNamDataRspMsgT msg;
+} psw_uim_update_nam_data_msg_struct;
+
+/* PSW_UIM_STORE_ESN_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_store_esn_msg_struct;
+
+/* PSW_UIM_BS_CHALLENGE_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspToPsMsgT msg;
+} psw_uim_bs_challenge_ack_msg_struct;
+
+/* PSW_UIM_CONFIRM_SSD_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspToPsMsgT msg;
+} psw_uim_confirm_ssd_ack_msg_struct;
+
+/* PSW_UIM_RUN_CAVE_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspToPsMsgT msg;
+} psw_uim_run_cave_ack_msg_struct;
+
+/* PSW_UIM_STATUS_NOTIFY_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimNotifyMsgT msg;
+} psw_uim_status_notify_msg_struct;
+
+/* PSW_UIM_DATA_OTAFeature_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_data_otafeature_msg_struct;
+
+/* PSW_UIM_MS_KEY_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_ms_key_request_ack_msg_struct;
+
+/* PSW_UIM_KEY_GENERATION_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_key_generation_request_ack_msg_struct;
+
+/* PSW_UIM_COMMIT_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_commit_ack_msg_struct;
+
+/* PSW_UIM_VALIDATE_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_validate_ack_msg_struct;
+
+/* VAL_UIM_VALIDATE_SPC_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+}val_uim_validate_spc_msg_struct;
+
+/* PSW_UIM_CONFIGURATION_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_configuration_request_ack_msg_struct;
+
+/* PSW_UIM_DOWNLOAD_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_download_request_ack_msg_struct;
+
+/* PSW_UIM_SSPR_CONFIGURATION_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_sspr_configuration_request_ack_msg_struct;
+
+/* PSW_UIM_SSPR_DOWNLOAD_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_sspr_download_request_ack_msg_struct;
+
+/* PSW_UIM_OTAPA_REQUEST_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_otapa_request_ack_msg_struct;
+
+/* PSW_UIM_UPDATE_BINARY_ACK_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_update_binary_ack_msg_struct;
+
+/* PSW_UIM_OTA_RUN_CAVE_ACK_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimRspMsgT msg;
+} psw_uim_ota_run_cave_ack_msg_struct;
+
+/* OTASP IS683 */
+/* PSW_OTASP_RCVD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswOtaspRcvdMsgT msg;
+} psw_otasp_rcvd_msg_struct;
+
+/* PSW_OTASP_REL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_otasp_rel_msg_struct;
+
+/* PSW_OTASP_TX_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswOtaspTxReqMsgT msg;
+} psw_otasp_tx_req_msg_struct;
+
+/* PSW_OTASP_SO_PREF_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswOtaspSoPrefMsgT msg;
+} psw_otasp_so_pref_msg_struct;
+
+/* PSW_EXP_MOD_MS_RESULT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswModExpMSResultMsgT msg;
+} psw_exp_mod_ms_result_msg_struct;
+
+/* PSW_EXP_MOD_BS_RESULT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswModExpBSResultMsgT msg;
+} psw_exp_mod_bs_result_msg_struct;
+
+/* PSW_FILL_SSPR_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_file_sspr_rsp_msg_struct;
+
+/* PSW_IOTA_IS683_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIOTAIS683MsgT msg;
+} psw_iota_is683_msg_struct;
+
+/* PSW_IOTA_PRL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIOTAPRLMsgT msg;
+} psw_iota_prl_msg_struct;
+
+/* PSW_OTA_SPL_UNLOCK_FAIL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_ota_spl_unlock_fail_msg_struct;
+
+/* PSW_OTA_SET_POWER_UP_MODE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswOtaSetPowerUpModeMsgT msg;
+} psw_ota_set_power_up_mode_msg_struct;
+
+/* MSG_ID_PSW_VERIFY_SPC_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswVerifySPCMsgT msg;
+} psw_verify_spc_msg_struct;
+
+/* IS801 Location Services */
+/* PSW_POS_AFLT_PPM_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    VAL_LCS_PPM_REQ_T msg;
+} psw_pos_aflt_ppm_req_msg_struct;
+
+/* PSW_POS_AFLT_MEASUREMENTS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswPosAfltMeasurementMsgT msg;
+} psw_pos_aflt_measurements_msg_struct;
+
+/* PSW_POS_AFLT_ACK_ABORT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswPosAfltAckAbortMsgT msg;
+} psw_pos_aflt_ack_abort_msg_struct;
+
+/* PSW_POS_AFLT_ABORT_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswPosAfltAbortReqMsgT msg;
+} psw_pos_aflt_abort_req_msg_struct;
+
+/* PSW_IS801_TCPB_REV_DATA_RESP_INFO_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_is801_tcpb_rev_data_resp_info_msg_strcut;
+
+/* PSW_IS801_TCPB_FWD_DATA_RESP_INFO_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TcpbFwdDataRespInfoMsgT msg;
+} psw_is801_tcpb_fwd_data_resp_info_msg_struct;
+
+/* PSW_IS801_SESSION_START_MSG  */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801SessionStartMsgT msg;
+} psw_is801_session_start_msg_struct;
+
+/* PSW_IS801_TCP_CONN_STATUS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TcpConnStatusMsgT msg;
+} psw_is801_tcp_conn_status_msg_struct;
+
+/* PSW_IS801_RESET_ASSIST_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswGpsResetAssistMsgT msg;
+} psw_is801_reset_assist_msg_struct;
+
+/* PSW_LOC_START_MODE_SET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLocStartModeSetMsgT msg;
+} psw_loc_start_mode_set_msg_struct;
+
+/* PSW_LOC_FIX_MODE_GET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswValLocFixModeGetMsgT msg;
+} psw_loc_fix_mode_get_msg_struct;
+
+/* PSW_IS801_MS_CANCEL_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801SessCancelReqMsgT msg;
+} psw_is801_ms_cancel_req_msg_struct;
+
+/* PSW_POS_REJECT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswPosRejectMsgT msg;
+} psw_pos_reject_msg_struct;
+
+/* PSW_IS801_EPH_ALM_TIME_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801EphAlmSystimeMsgT msg;
+} psw_is801_eph_alm_time_msg_struct;
+
+/* PSW_IS801_MSS_DONE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801MssDoneMsgT msg;
+} psw_is801_mss_done_msg_struct;
+
+/* PSW_IS801_AFLT_INFO_GET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_is801_aflt_info_get_msg_struct;
+
+/* PSW_LOC_PREF_REQ_MSG = 475 */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLocPrefReqMsgT msg;
+} psw_loc_pref_req_msg_struct;
+
+/* PSW_PDE_SESSION_ABORT_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_pde_session_abort_req_msg_struct;
+
+/* PSW_PDE_PSEUDORANGE_MSMT_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswPseudorangeMsmtRspMsgT msg;
+} psw_pde_pseudorange_msmt_rsp_msg_struct;
+
+/* PSW_PDE_SESSION_END_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_pde_session_end_rsp_msg_struct;
+
+/* PSW_PDE_GPS_INOP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_pde_gps_inop_msg_struct;
+
+/* PSW_GPS_ENABLE_REPORTS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswGPSEnableReportsMsgT msg;
+} psw_gps_enable_reports_msg_struct;
+
+/* PSW_TEST_LOC_PDDM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 data[100];
+} psw_test_loc_pddm_msg_struct;
+
+/* PSW_TEST_POWER_CONTROL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswTestPowerControlMsgT msg;
+} psw_test_power_control_msg_struct;
+
+/* PSW_L1D_ALTERNATE_PILOTS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswL1dAlternatePilotsMsgT msg;
+} psw_l1d_alternate_pilots_msg_struct;
+
+/* PSW_LOCATION_SVC_CFG_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLocationSvcCfgMsgT msg;
+} psw_location_svc_cfg_msg_struct;
+
+/* PSW_IS801_RESTART_FIX_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswValRestartMsgT msg;
+} psw_is801_restart_fix_msg_struct;
+
+/*MS-Based*/
+/* PSW_ASSIST_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswAssistReqT msg;
+} psw_assist_req_msg_struct;
+
+/* PSW_GPS_NMEA_STREAM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswGpsNmeaStreamMsgT msg;
+} psw_gps_nmea_stream_msg_struct;
+
+/* PSW_IS801_NMEA_SETTING_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801NmeaOutputSettingMsgT msg;
+} psw_is801_nmea_setting_msg_struct;
+
+/* PSW_IS801_MPC_CONN_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801MpcConnStatusMsgT msg;
+} psw_is801_mpc_conn_msg_struct;
+
+/* PSW_LOC_STATE_CHANGE_ETS_TEST_CMD */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLocStateChangedMsgT msg;
+} psw_loc_state_change_ets_test_cmd_struct;
+
+/* PSW_IS801_PPM_TIMER_EXP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TimerExpMsgT msg;
+} psw_is801_ppm_timer_exp_msg_struct;
+
+/* PSW_IS801_SESS_TIMER_EXP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TimerExpMsgT msg;
+} psw_is801_sess_timer_exp_msg_struct;
+
+/* PSW_IS801_PRM_TIMER_EXP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TimerExpMsgT msg;
+} psw_is801_prm_timer_exp_msg_struct;
+
+/* PSW_IS801_PREF_RESP_QUAL_TIMER_EXP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TimerExpMsgT msg;
+} psw_is801_pref_resp_qual_timer_exp_msg_struct;
+
+/* PSW_IS801_OUT_REQ_TIMER_EXP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801TimerExpMsgT msg;
+} psw_is801_out_req_timer_exp_msg_struct;
+
+/****MS-Based*********/
+
+/*From LEC*/
+/* PSW_LEC_LOC_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLocRspDataT msg;
+} psw_lec_loc_rsp_msg_struct;
+
+/* PSW_GPS_READY_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_gps_ready_req_msg_struct;
+
+/* PSW_GPS_READY_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_gps_ready_msg_struct;
+
+/* PSW_GPS_SIXTY_TIMER_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_gps_sixty_timer_msg_struct;
+
+/* PSW_GET_TRANSMIT_INFO_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_get_transmit_info_msg_struct;
+
+/* PSW_SET_TRANSMIT_INFO_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSetTransmitInfoMsgT msg;
+} psw_set_transmit_info_msg_struct;
+
+/* PSW_SYSTEM_READY_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_system_ready_req_msg_struct;
+
+/* PSW_IS801_CUSTOMER_SETTING_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIs801CustomerSettingMsgT msg;
+} psw_is801_customer_setting_msg_struct;
+
+/* PSW_LEC_SESSION_END_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswLecSessionEndRspMsgT msg;
+}psw_lec_session_end_rsp_msg_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   rsvas_service_type_enum peer_service_type;
+   rsvas_sim_enum sim_in_transfer;
+} rsvas_psw_suspend_service_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   rsvas_service_type_enum peer_service_type;
+} rsvas_psw_abort_service_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   rsvas_service_type_enum peer_service_type;
+   rsvas_sim_enum sim_in_transfer;
+} rsvas_psw_virtual_suspend_service_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   rsvas_sim_enum sim_in_transfer;
+} rsvas_psw_virtual_resume_service_req_struct;
+
+/* MSG_ID_C2K_LTE_CSFB_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    c2k_lte_csfb_result_enum    result;
+} psw_c2k_lte_csfb_cnf_struct;
+
+/*PSW message end */
+/* PSW_IDP_RSVAS_SERVICE_OCCUPY_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+#ifdef MTK_DEV_C2K_IRAT
+    PswRsvasServiceOccupyRequestT msg;
+#endif
+} psw_idp_rsvas_service_occupy_req_msg_struct;
+
+/* PSW_IDP_RSVAS_SERVICE_RELEASE_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+#ifdef MTK_DEV_C2K_IRAT
+    PswRsvasServiceReleaseT msg;
+#endif
+} psw_idp_rsvas_service_release_req_msg_struct;
+
+
+/* from L1D */
+/* MSG_ID_PSW_PMRM_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswPmrMsgT msg;
+} psw_pmrm_req_msg_struct;
+
+/* MSG_ID_PSW_CAND_FREQ_TIMES_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCandFreqTimesMsgT msg;
+} psw_cand_freq_times_msg_struct;
+
+/* MSG_ID_PSW_CAND_FREQ_MEASUREMENTS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCandFreqMeasurementsMsgT msg;
+} psw_cand_freq_measurements_msg_struct;
+
+/* MSG_ID_PSW_SCAN_MEASUREMENTS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswScanMeasurementsMsgT msg;
+} psw_scan_measurements_msg_struct;
+
+/* MSG_ID_PSW_IDLE_HANDOFF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswIdleHandoffMsgT msg;
+} psw_idle_handoff_msg_struct;
+
+/* MSG_ID_PSW_START_CF_MEASURE_MSG */
+
+/* MSG_ID_PSW_END_CF_MEASURE_MSG */
+
+/* MSG_ID_PSW_INITIAL_ACQ_REPORT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswInitialAcqReportMsgT msg;
+} psw_initial_acq_report_msg_struct;
+
+/* MSG_ID_PSW_SET_IDLE_HO_PARAMETERS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetIdleHOParmsMsgT msg;
+} psw_set_idle_ho_parameters_msg_struct;
+
+/* MSG_ID_PSW_OUTER_LOOP_REPORT_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswOuterLoopReportReqMsgT msg;
+} psw_outer_loop_report_req_msg_struct;
+
+/* MSG_ID_PSW_GET_PS_INFO_MSG */
+
+/* MSG_ID_PSW_L1D_ACCESS_PREAMBLE_COMPLETE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswL1dAccessPreambleCompleteMsgT msg;
+} psw_l1d_access_preamble_complete_msg_struct;
+
+/* MSG_ID_PSW_L1D_ACCESS_COMPLETE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswL1dAccessCompleteMsgT msg;
+} psw_l1d_access_complete_msg_struct;
+
+/* MSG_ID_PSW_L1D_ACCESS_PROBE_COMPLETE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswL1dAccessProbeCompleteMsgT msg;
+} psw_l1d_access_probe_complete_msg_struct;
+
+/* MSG_ID_PSW_OOSA_WAKEUP_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswOosaWakupIndMsgT msg;
+} psw_oosa_wakeup_ind_msg_struct;
+
+/* MSG_ID_PSW_SERVICE_OPTION_CONTROL_RESP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswServiceOptionControlRespMsgT msg;
+} psw_service_option_control_resp_msg_struct;
+
+/* MSG_ID_PSW_RSCH_REL_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswRschRelIndMsgT msg;
+} psw_rsch_rel_ind_msg_struct;
+
+/* MSG_ID_PSW_STAT_CNT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswStatCntMsgT msg;
+} psw_stat_cnt_msg_struct;
+
+/* MSG_ID_PSW_FORWARD_PAGE_CHAN_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   FcschMessage msg;
+#ifdef MTK_PLT_ON_PC_UT
+   PCHMessageLACField lac;
+#endif
+   kal_uint8 data[CPBUF_SIZE_FWD];
+} psw_forward_page_chan_msg_struct;
+
+/* MSG_ID_PSW_FORWARD_FCCCH_MSG */
+
+
+/* MSG_ID_PSW_FORWARD_BCCH_MSG */
+
+
+/* MSG_ID_PSW_FORWARD_SYNC_CHAN_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   SyncChannelMessage msg;
+} psw_forward_sync_chan_msg_struct;
+
+/* MSG_ID_PSW_DSCH_CHAN_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   FTCMessage msg;
+#ifdef MTK_PLT_ON_PC_UT
+   FTCMessageLACField lac;
+#endif
+   kal_uint8 data[CPBUF_SIZE_FWD];
+} psw_dsch_chan_msg_struct;
+
+/* from RLP */
+/* MSG_ID_PSW_DATA_BUFFER_STATUS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswDataBufferStatusMsgT msg;
+} psw_data_buffer_status_msg_struct;
+
+
+/* from MMI */
+/* MSG_ID_PSW_POWER_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswPowerMsgT msg;
+} psw_power_msg_struct;
+
+/* MSG_ID_PSW_CALL_INITIATE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCallInitiateMsgT msg;
+} psw_call_initiate_msg_struct;
+
+/* MSG_ID_PSW_CALL_INITIATE_WITH_INFO_REC_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCallInitiateMsgT msg;
+} psw_call_initiate_with_info_rec_msg_struct;
+
+/* MSG_ID_PSW_GET_PRL_INFO_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetPrlMsgT msg;
+} psw_get_prl_info_msg_struct;
+
+/* MSG_ID_PSW_E911_MODE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswE911ModeMsgT msg;
+} psw_e911_mode_msg_struct;
+
+/* MSG_ID_PSW_CALL_ANSWER_MSG */
+
+/* MSG_ID_PSW_CALL_HANGUP_MSG */
+
+/* MSG_ID_PSW_SEND_CONT_DTMF_ON_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSendContDTMFMsgT msg;
+} psw_send_cont_dtmf_on_msg_struct;
+
+/* MSG_ID_PSW_SEND_CONT_DTMF_OFF_MSG */
+
+/* MSG_ID_PSW_SEND_BURST_DTMF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSendBurstDTMFMsgT msg;
+} psw_send_burst_dtmf_msg_struct;
+
+/* MSG_ID_PSW_HOOKFLASH_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswHookflashMsgT msg;
+} psw_hookflash_msg_struct;
+
+/* MSG_ID_PSW_SET_PRIVACY_MODE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetPrivacyModeMsgT msg;
+} psw_set_privacy_mode_msg_struct;
+
+/* MSG_ID_PSW_VAL_SET_DDTM_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswValSetDDTMMsgT msg;
+} psw_set_ddtm_mode_msg_struct;
+
+/* MSG_ID_PSW_SET_RETRIEVABLE_PARAMETER */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetRetrievableParameterMsgT msg;
+} psw_set_retrievable_parameter_struct;
+
+/* MSG_ID_PSW_GET_RETRIEVABLE_PARAMETER */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetRetrievableParameterMsgT msg;
+} psw_get_retrievable_parameter_struct;
+
+/* MSG_ID_PSW_INJECT_HANDOFF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswInjectHandoffMsgT msg;
+} psw_inject_handoff_msg_struct;
+
+
+/* MSG_ID_PSW_GET_FULL_SYS_TIME_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetFullSysTimeMsgT msg;
+} psw_get_full_sys_time_msg_struct;
+
+/* MSG_ID_PSW_SET_SILENT_RETRY_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetSilentRetryMsgT msg;
+} psw_set_silent_retry_msg_struct;
+
+/* MSG_ID_PSW_GET_SILENT_RETRY_STATUS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetSilentRetryStatusMsgT msg;
+} psw_get_silent_retry_status_msg_struct;
+
+/* MSG_ID_PSW_SET_MOB_PREV_MSG */
+
+/* MSG_ID_PSW_SET_CUSTOM_FEATURE_MSG */
+
+/* MSG_ID_PSW_SET_PRL_ENABLE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswEnablePrlMsgT msg;
+} psw_set_prl_enable_msg_struct;
+
+/* from generic PS interfaces */
+#ifdef MTK_PLT_ON_PC_UT
+/* MSG_ID_PSW_UNIT_TEST_REVERSE_SIG_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswUnitTestReverseSigMsgT msg;
+} psw_unit_test_reverse_sig_msg_struct;
+#ifdef MTK_DEV_C2K_IRAT
+/* MSG_ID_PSW_SET_IRAT_PARAM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSetIratParamMsgT msg;
+} psw_set_irat_param_msg_struct;
+#endif
+#endif
+/* MSG_ID_PSW_ENGINE_TEST_MODE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswEngineTestModeMsgT msg;
+} psw_engine_test_mode_msg_struct;
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+/* MSG_ID_PSW_ENGINE_TEST_MODE_GET_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswEngineTestModeGetReqMsgT msg;
+} psw_engine_test_mode_get_req_msg_struct;
+
+/* MSG_ID_PSW_SET_SERVICE_CONFIG_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetServiceConfigReqMsgT msg;
+} psw_set_service_config_req_msg_struct;
+#endif
+
+/* MSG_ID_PSW_INIT_NAM_ALREADY_PROVISIONED_MSG */
+
+/* MSG_ID_PSW_HSPD_ACTIVE_CONTROL_HOLD_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswHspdActiveControlHoldMsgT msg;
+} psw_hspd_active_control_hold_msg_struct;
+
+/* MSG_ID_PSW_RSCH_REQUEST_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswRevSchRequestMsgT msg;
+} psw_rsch_request_msg_struct;
+
+/* MSG_ID_PSW_SET_ACCESS_HO_PARAMETERS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetAccessHOParmsMsgT msg;
+} psw_set_access_ho_parameters_msg_struct;
+
+/* MSG_ID_PSW_DEBUG_SCREEN_INFO_REQUEST */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswDebugScrnRequestMsgT msg;
+} psw_debug_screen_info_request_struct;
+
+/* MSG_ID_PSW_DEBUG_PILOT_STRENGTH_INFO_REQUEST */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswDebugPilotStrengthMsgT msg;
+} psw_debug_pilot_strength_info_request_struct;
+
+/* MSG_ID_PSW_DEBUG_SCRN_LMD_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   LmdGetDebugScrnInfoResponseT msg;
+} psw_debug_scrn_lmd_rsp_msg_struct;
+
+/* MSG_ID_PSW_DEBUG_SCRN_L1D_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   L1dGetDebugScrnInfoResponseT msg;
+} psw_debug_scrn_l1d_rsp_msg_struct;
+
+/* MSG_ID_PSW_EXIT_EMERGENCY_MODE_MSG */
+
+/* MSG_ID_PSW_GET_GPS_DEBUG_INFO_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGpsDebugInfoCmdMsgT msg;
+} psw_get_gps_debug_info_msg_struct;
+
+/* MSG_ID_PSW_SET_MOBILE_ID_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetMobileIDMsgT msg;
+} psw_set_mobile_id_msg_struct;
+
+/* MSG_ID_PSW_GET_MOBILE_ID_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetMobileIDMsgT msg;
+} psw_get_mobile_id_msg_struct;
+
+/* MSG_ID_PSW_CL1TST_SET_MOBILE_ID_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetMobileIDMsgT msg;
+} psw_cl1tst_set_mobile_id_msg_struct;
+
+/* MSG_ID_PSW_OTTS_TIMER_SIMULATION */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   CPTimerId id;
+} psw_otts_timer_simulation_struct;
+
+/* MSG_ID_PSW_HLW_MIP_KEYS_UPDATE_MSG */
+
+/* MSG_ID_PSW_READ_RAW_IMSI_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswReadRawIMSIMsgT msg;
+} psw_read_raw_imsi_msg_struct;
+
+/* MSG_ID_PSW_WRITE_RAW_IMSI_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswWriteRawIMSIMsgT msg;
+} psw_write_raw_imsi_msg_struct;
+
+/* MSG_ID_PSW_SLOTTED_VETO_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSlottedVetoMsgT msg;
+} psw_slotted_veto_msg_struct;
+
+
+/* MSG_ID_PSW_GET_MIP_KEYS_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetMIPkeysMsgT msg;
+} psw_get_mip_keys_msg_struct;
+
+/* MSG_ID_PSW_SET_SIP_PASSWORD_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetSIPpasswordMsgT msg;
+} psw_set_sip_password_msg_struct;
+
+/* MSG_ID_PSW_GET_SIP_PASSWORD_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetSIPpasswordMsgT msg;
+} psw_get_sip_password_msg_struct;
+
+
+/* MSG_ID_PSW_GET_SPC_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetSpcMsgT msg;
+} psw_get_spc_msg_struct;
+
+/* MSG_ID_PSW_GET_SSD_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetSSDMsgT msg;
+} psw_get_ssd_msg_struct;
+
+
+/* MSG_ID_PSW_GET_CP_BC_TO_CDMA_BC_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetCpBcToCdmaBcMsgT msg;
+} psw_get_cp_bc_to_cdma_bc_msg_struct;
+
+/* MSG_ID_PSW_SET_FLY_MODE_ENABLE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswFlyModeMsgT msg;
+} psw_set_fly_mode_enable_msg_struct;
+
+/* MSG_ID_PSW_ENABLE_PRL_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswEnablePrlMsgT msg;
+} psw_enable_prl_msg_struct;
+
+/* MSG_ID_PSW_SET_PARM_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ValGenericSetParmMsgT msg;
+} psw_set_parm_msg_struct;
+
+/* MSG_ID_PSW_GET_PARM_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ValGenericGetParmMsgT msg;
+} psw_get_parm_msg_struct;
+
+/* MSG_ID_PSW_WRITE_RAW_MDN_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswWriteRawMDNMsg msg;
+} psw_write_raw_mdn_msg_struct;
+
+/* MSG_ID_PSW_TA_TIMER_EXPIRED_MSG */
+
+/* MSG_ID_PSW_DATA_CALL_ANSWER_MSG */
+
+/* MSG_ID_PSW_UICC_FACTORY_MODE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswUiccFactoryModeMsgT msg;
+} psw_uicc_factory_mode_msg_struct;
+
+/* MSG_ID_PSW_VAL_PILOT_PWR_ACK_MSG */
+
+
+/* MSG_ID_PSW_DS_CALL_REL_MSG */
+
+/* MSG_ID_PSW_PS_CALL_REL_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswPsCallRelMsgT msg;
+} psw_ps_call_rel_msg_struct;
+
+/* MSG_ID_PSW_LS_CALL_REL_MSG */
+
+/* MSG_ID_PSW_DS_ENABLE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswDsEnableMsgT msg;
+} psw_ds_enable_msg_struct;
+
+/* MSG_ID_PSW_PS_DORMANT_REQ_MSG */
+
+/* MSG_ID_PSW_DATA_PREF_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswDataPrefReqMsgT msg;
+} psw_data_pref_req_msg_struct;
+
+/* MSG_ID_PSW_VS_PREF_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswVsPrefReqMsgT msg;
+} psw_vs_pref_req_msg_struct;
+
+/* MSG_ID_PSW_LS_PREF_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswLsPrefReqMsgT msg;
+} psw_ls_pref_req_msg_struct;
+
+/* MSG_ID_PSW_VS_SWITCH_SO_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswVsSwitchSoMsgT msg;
+} psw_vs_switch_so_msg_struct;
+
+/* MSG_ID_PSW_VS_DS_PREARANG_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswVsDsPreArangMsgT msg;
+} psw_vs_ds_prearang_msg_struct;
+
+/* MSG_ID_PSW_SET_SERVICE_CONFIG_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetServiceConfigMsgT msg;
+} psw_set_service_config_msg_struct;
+
+/* MSG_ID_PSW_SET_PKZID_HYSTER_TMR_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetPkzidHysterTmrMsgT msg;
+} psw_set_pkzid_hyster_tmr_msg_struct;
+
+
+/* MSG_ID_PSW_CUSTOM_LOCK_FEATURE_REG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCustomFeatureMsgT msg;
+} psw_custom_feature_msg_struct;
+
+/* MSG_ID_PSW_CUSTOM_LOCK_TRIGGER */
+
+
+/* System Selection Messages */
+/* MSG_ID_PSW_CSS_SELECT_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssSelectRspMsgT msg;
+} psw_css_select_rsp_msg_struct;
+
+/* MSG_ID_PSW_CSS_VALIDATE_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssValidateRspMsgT msg;
+} psw_css_validate_rsp_msg_struct;
+
+/* MSG_ID_PSW_CSS_SYS_ACQ_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssSysAcqReqMsgT msg;
+} psw_css_sys_acq_req_msg_struct;
+
+/* MSG_ID_PSW_CSS_ACQ_ABORT_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_css_sys_acq_abort_req_msg_struct;
+
+/* MSG_ID_PSW_CSS_OOSA_SLEEP_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssOosaSleepReqMsgT msg;
+} psw_css_oosa_sleep_req_msg_struct;
+
+/* MSG_ID_PSW_CSS_OOSA_WAKEUP_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_css_oosa_wakeup_req_msg_struct;
+
+/* MSG_ID_PSW_CSS_END_E911_CALL_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_css_end_e911_call_req_msg_struct;
+
+/* MSG_ID_PSW_CSS_OTASP_SCAN_FINISHED_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_css_otasp_scan_finished_msg_struct;
+
+/* MSG_ID_PSW_CSS_INDICATE_IN_SERVICE_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_css_indicate_in_service_msg_struct;
+
+/* MSG_ID_PSW_NOTIFY_SRV_STATUS_TO_UPPER_LAYER_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} psw_notify_srv_status_to_upper_layer_msg_struct;
+
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssValSyncRspMsgT msg;
+} psw_css_val_sync_rsp_msg_struct;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswCssOosaSleepReqMsgT  msg;
+}psw_css_oosa_cont_sleep_req_msg_struct;
+
+/* PSW_C2K_SIM_INDEX_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ValPswC2kSimIndexMsgT  msg;
+}psw_c2k_sim_index_msg_struct;
+#endif
+
+/* MSG_ID_PSW_SET_LOST_SCAN_PING_FREQUENCY_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSetLostScanPingFrequencyMsgT msg;
+} psw_set_lost_scan_ping_frequency_msg_struct;
+
+
+/* Other */
+/* MSG_ID_PSW_IRAT_MCC_REQ */
+
+/* MSG_ID_PSW_IRAT_CUR_SYS_MEAS_REQ */
+
+#ifdef MTK_DEV_C2K_IRAT
+/* MSG_ID_PSW_IRAT_RAT_SIG_MON_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswIratRATSigMonReqT msg;
+} psw_irat_rat_sig_req_struct;
+
+
+/* MSG_ID_PSW_IRAT_1X_REG_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswIrat1xRegReqMsgT msg;
+} psw_irat_1x_reg_req_struct;
+
+#endif
+/* MSG_ID_PSW_GPS_FRAME_SYNC_DONE_MSG */
+
+/* MSG_ID_PSE_LEC_CDMA_SYSTEM_REQ_MSG */
+
+/* MSG_ID_PSW_USERMODE_MSG */
+
+/* MSG_ID_PSW_TESTMODE_MSG */
+
+/* MSG_ID_PSW_LTE_MSG */
+
+/* MSG_ID_PSW_SET_EMERGENCY_CARD_INIT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint8 msg;
+} psw_set_emerency_card_init_msg_struct;
+
+/* MSG_ID_PSW_MANUAL_AVOID_NETWORK_MSG */
+
+/* MSG_ID_PSW_ANTENNA_CFG_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswAntennaCfgMsgT msg;
+} psw_antenna_cfg_msg_struct;
+
+/* MSG_ID_PSW_ENTER_AKEY_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswEnterAKeyMsgT msg;
+} psw_enter_akey_msg_struct;
+
+/* MSG_ID_PSW_SELECT_ACTIVE_NAM_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswSelectActiveNamMsgT msg;
+} psw_select_active_nam_msg_struct;
+
+/* MSG_ID_PSW_SET_EMERGENCY_CARD_INIT_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint8 EmergencyCardInit;
+} psw_set_emergency_card_init_msg_struct;
+
+
+/* MSG_ID_VAL_GET_TRANSMIT_INFO_RSP_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswGetTransmitInfoRspMsgT msg;
+} psw_get_transmit_info_rsp_msg_struct;
+
+
+
+/* MSG_ID_PSW_NST_EXIT_TEST_MODE_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstExitMsgT msg;
+} psw_nst_exit_test_mode_msg_struct;
+
+
+
+/* MSG_ID_PSW_NST_POWER_UP_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstPowerupMsgT   msg;
+} psw_nst_power_up_msg_struct;
+
+
+/* MSG_ID_CL1TST_NST_POWER_UP_CNF_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstPowerupAckRspMsgT   msg;
+} cl1tst_nst_power_up_cnf_msg_struct;
+
+
+/* MSG_ID_PSW_NST_TCH_FER_CFG_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstTchFerCfgMsgT   msg;
+} psw_nst_tch_fer_cfg_msg_struct;
+
+
+/* MSG_ID_CL1TST_NST_TCH_FER_CFG_CNF_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstTchFerCfgCnfMsgT   msg;
+} cl1tst_nst_tch_fer_cfg_cnf_msg_struct;
+
+
+/* MSG_ID_PSW_NST_TCH_FER_CFG_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstTransmitTchMsgT   msg;
+} psw_nst_tx_pwr_meas_cfg_msg_struct;
+
+
+/* MSG_ID_CL1TST_NST_TX_PWR_MEAS_CFG_CNF_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstTransmitTchAckMsgT   msg;
+} cl1tst_nst_tx_pwr_meas_cfg_cnf_msg_struct;
+
+
+/* MSG_ID_PSW_NST_TCH_FER_CFG_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstRxPwrReqMsgT   msg;
+} psw_nst_rx_pwr_meas_cfg_msg_struct;
+
+/* MSG_ID_CL1TST_NST_RX_PWR_MEAS_CFG_CNF_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstRxPwrRespMsgT   msg;
+} cl1tst_nst_rx_pwr_meas_cfg_cnf_msg_struct;
+
+/* MSG_ID_PSW_NST_LIST_SET_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstListSetMsgT msg;
+} psw_nst_list_set_msg_struct;
+
+/* MSG_ID_CL1TST_NST_LIST_SET_CFG_CNF_MSG
+*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswNstListSetRespMsgT msg;
+} cl1tst_nst_list_set_cfg_cnf_msg_struct;
+
+/* Tx NST control Message L1D_TST_NST_TRAFFIC_ON_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   L1dTstTxNstCtrlMsgT  msg;
+} l1d_tst_tx_ctrl_msg_struct;
+
+/* Tx NST control Message L1D_TST_NST_TRAFFIC_ON_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   L1dTransmitNstMsgT  msg;
+} l1d_transmit_nst_msg_struct;
+
+
+/*  NST Rx Power Request Message L1D_TST_RX_PWR_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   L1dNstRxPwrReqMsgT  msg;
+} l1d_nst_rx_pwr_req_msg_struct;
+
+/*  NST Rx Power Request Message L1D_TST_RX_PWR_CNFMSG */
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   L1dNstRxPwrCnfMsgT  msg;
+} l1d_nst_rx_pwr_cnf_msg_struct;
+
+
+#ifdef MTK_PLT_ON_PC_UT
+
+/*PSW_SEND_SBP_CONFIG_MSG*/
+typedef struct {
+    LOCAL_PARA_HDR
+    PswSetSbpIdMsgT  msg;
+}psw_send_sbp_config_msg_struct;
+
+#endif /* MTK_PLT_ON_PC_UT */
+
+/*For ELT version checking*/
+typedef enum {
+    V1_1639_1
+} c2k_codec_min_version;
+
+/* MSG_ID_PSW_L1D_SLT_TX_VERIFY_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   PswL1dSltTxVerifyIndMsgT msg;
+} psw_l1d_slt_tx_verify_ind_msg_struct;
+
+/* MSG_ID_PSW_1X_SLT_VERIFY_RESULT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   SltVerifyResultMsgT msg;
+} psw_1x_slt_verify_result_msg_struct;
+
+/* MSG_ID_PSW_DO_SLT_VERIFY_RESULT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   SltVerifyResultMsgT msg;
+} psw_do_slt_verify_result_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_CONN_IND_MSG, */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_otasppa_conn_ind_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_ORIG_IND_MSG, */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_uint8 digits[40];
+} psw_otasppa_orig_ind_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_DISCONN_IND_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_uint8 reason;
+} psw_otasppa_disconn_ind_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_MSG_CONFIRM_IND_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_bool success;
+} psw_otasppa_msg_confirm_ind_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_RECV_MSG_IND_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_uint16 length;
+	kal_uint8  data[255];
+} psw_otasppa_recv_msg_ind_msg_struct;
+
+/* MSG_ID_PSW_OTASPPA_SEND_MSG_REQ_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_uint16 length;
+	kal_uint8 data[255];
+} psw_otasppa_send_msg_req_msg_struct;
+
+/* MSG_ID_PSW_HLP_DRS_UPDATE_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool drs;
+    kal_bool reconn_drs0;
+} psw_hlp_drs_update_ind_msg_struct;
+
+/* MSG_ID_PSW_L1D_OOSA_CNF_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_l1d_oosa_cnf_struct; /* for NWSIM IT case msg check */
+
+/* MSG_ID_PSW_STOP_PSC_DORMANT_TIMER_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_stop_psc_dormant_timer_msg_struct;
+
+/* MSG_ID_PSW_FORCE_TO_ENTER_DORMANT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_force_to_enter_dormant_msg_struct;
+
+#ifdef MTK_PLT_ON_PC_UT
+/* MSG_ID_PSW_SCC_IND_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	PswSccIndMsg msg;
+}psw_scc_ind_msg_struct;
+
+/* MSG_ID_PSW_SCC_REQ_MSG */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	PswSccReqMsg msg;
+}psw_scc_req_msg_struct;
+
+#endif
+
+/* MSG_ID_PSW_TST_INJECT_STRING */
+typedef struct
+{
+	LOCAL_PARA_HDR
+	PswTstInjectEnum tstInject;
+}psw_tst_inject_string_struct;
+
+/* MSG_ID_PSW_SET_GPS_FLOW_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32 gps_flow;
+}psw_set_gps_flow_msg_struct;
+
+/* MSG_ID_PSW_PKZ_HYSTS_ACTIVE_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_pkz_hysts_active_ind_struct;
+#endif /* _PSW_MSG_STRUCT_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/psw_nvram.h b/mcu/interface/protocol/as_c2k/1xrtt/psw_nvram.h
new file mode 100644
index 0000000..c2be651
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/psw_nvram.h
@@ -0,0 +1,1267 @@
+/*****************************************************************************
+*  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 CONSKAL_TRUED 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 _PSW_NVRAM_H_
+
+#define _PSW_NVRAM_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "kal_general_types.h"
+#include "c2k_defs.h"
+
+/*****************************/
+/* PswNam  definitions start */
+/*****************************/
+  #define NAM_BANDS_SUPPORTED   5
+                                    /* skip, T53, Korean PCS            */
+
+                                      
+  #define CP_MAX_TMSI_ZONE_LEN  8
+  #define NAM_MEID_SIZE         7    /* size of MEID */
+#ifndef MTK_PLT_ON_PC
+  #define REMAINING_NAM_SIZE    3
+#else
+  #define REMAINING_NAM_SIZE    2
+#endif
+
+  #define OTA_ALLOW_OTAPA       0x02   /* User flag to reject network OTAPA attemps */
+  #define OTA_ENABLE_OTA        0x04   /* User flag to enable OTA functionality in MS */
+  #define OTA_ENABLE_SPASM      0x08   /* User flag to enable SPASM function in MS */
+  #define OTA_ENABLE_SPC_CHANGE 0x10   /* User flag to enable SPC Change in MS */
+
+  #define AUTH_AKEY_VALID       0x01   /* Akey Valid. OK for Authentication */
+  #define AUTH_ENABLE_VP        0x02   /* Voice Privacy Enabled */
+  #define MOB_TERM_HOME_ENABLED 0x01   /* receive mobile terminated calls in home system */
+  #define MOB_TERM_SID_ENABLED  0x02   /* receive mobile terminated calls in foreign SID system */
+  #define MOB_TERM_NID_ENABLED  0x04   /* receive mobile terminated calls in foreign NID system */
+
+  #define ROAM_SETTING_DOMESTIC_VOICE 0x01 /* Sprint Allow voice roaming on domestic system */
+  #define ROAM_SETTING_DOMESTIC_DATA  0x02 /* Sprint Allow data roaming on domestic system */
+  #define ROAM_SETTING_INT_VOICE      0x04 /* Sprint Allow voice romaing on international system */
+  #define ROAM_SETTING_INT_DATA       0x08 /* Sprint Allow data roaming on international system */
+#ifdef MTK_CBP
+  #define ROAM_SETTING_LTE_DATA       0x10 /* Sprint Allow LTE data roaming, not used in C2K saved only for AP get */
+  #define ROAM_SETTING_USED_BIT_NUM   5    /* Now only the 5 least significant bits used */
+#endif
+
+  #define NAM_MAX_MDN_DIGITS    16     /* max MDN digit number in NAM template */
+
+  #define SPC_MAX_VALUE         999999
+  #define SPC_MAX_RETRY         15
+
+/* Number of positive and negative sids in the NAM. */
+#define MAX_POSITIVE_SIDS   20
+#define MAX_NEGATIVE_SIDS   10
+
+/* Broadcast Address parameters */
+#define CP_BCAST_ADDRESS_MAX_SIZE   15
+
+/*- - - - - - - */
+/* NAM Defaults */
+/*- - - - - - - */
+#define PSW_DEFAULT_ESN              0xFF04FFFF
+
+#define PSW_DEFAULT_PRL_ENABLE       KAL_TRUE
+/* Station Class Mark */
+#define PSW_DEFAULT_SCM_BC0          0x28
+#define PSW_DEFAULT_SCM_BC1          0xA8
+#define PSW_DEFAULT_SCM_BC2          0x28
+#define PSW_DEFAULT_SCM_BC3          0x28
+#define PSW_DEFAULT_SCM_BC4          0xA8
+#define PSW_DEFAULT_SCM_BC5          0x28
+#define PSW_DEFAULT_SCM_BC6          0x28
+#define PSW_DEFAULT_SCM_BC7          0x28
+#define PSW_DEFAULT_SCM_BC8          0x28
+#define PSW_DEFAULT_SCM_BC9          0x28
+#define PSW_DEFAULT_SCM_BC10         0x28
+#define PSW_DEFAULT_SCM_BC11         0x28
+#define PSW_DEFAULT_SCM_BC12         0x28
+#define PSW_DEFAULT_SCM_BC13         0x28
+#define PSW_DEFAULT_SCM_BC14         0x28
+#define PSW_DEFAULT_SCM_BC15         0x28
+#define PSW_DEFAULT_SCM_BC16         0x28
+#define PSW_DEFAULT_SCM_BC17         0x28
+#define PSW_DEFAULT_SCM_BC18         0x28
+#define PSW_DEFAULT_SCM_BC19         0x28
+#define PSW_DEFAULT_SCM_BC20         0x28
+
+#ifdef KDDI_EXTENSIONS
+#define PSW_DEFAULT_PREV             9
+#else
+#define PSW_DEFAULT_PREV             6
+#endif
+
+#define PSW_DEFAULT_SLOT_CYCLE_IDX   2
+#define PSW_DEFAULT_MOB_FIRM_REV     0
+#define PSW_DEFAULT_MOB_MODEL        0
+
+#define PSW_DEFAULT_SSPR_PREV            PRL_EXT /* CBP7 should be PRL_EXT...*/
+
+#define PSW_DEFAULT_AKEY_0               0
+#define PSW_DEFAULT_AKEY_1               1
+
+typedef enum
+{
+  IMSI_M_VALID = 1,
+  IMSI_T_VALID,
+  IMSI_VALID_END
+} PswImsiValid;
+
+#define PSW_DEFAULT_VALID_IMSI_MAP       (IMSI_M_VALID | IMSI_T_VALID)
+
+#define PSW_DEFAULT_IMSI_M_MCC           359   /*Encoded form of 460*/
+#define PSW_DEFAULT_IMSI_11_12           92    /*Encoded form of 03*/
+
+#define PSW_DEFAULT_NUM_MDN_DIGITS       10
+
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_LEN 0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_0   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_1   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_2   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_3   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_4   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_5   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_6   0
+#define PSW_DEFAULT_ASSIGN_TMSI_ZONE_7   0
+#define PSW_DEFAULT_TMSI_CODE            0xFFFFFFFFL
+#define PSW_DEFAULT_TMSI_EXP_TIME        0
+
+/* Up to 20 SIDs; if SID unused, set to 0 */
+#define PSW_DEFAULT_MAX_SID_NID          MAX_POSITIVE_SIDS
+#if defined(KDDI_EXTENSIONS)
+#define PSW_DEFAULT_STORED_POS_SID_NID   0
+#else
+#define PSW_DEFAULT_STORED_POS_SID_NID   1
+#endif
+
+typedef enum
+{
+  HOME_ONLY,
+  AUTOMATIC,
+  AUTOMATIC_A,
+  AUTOMATIC_B
+} SystemSelectType;
+
+typedef enum
+{
+  CPC_IDLE_ST,
+  CPC_CONNECTING_ST,
+  CPC_CONNECTED_ST,
+  CPC_DISCONNECT_ST,
+  CPC_NUM_STATES
+} CpcStates;
+
+typedef enum
+{
+  CPC_ORIG_EV,
+  CPC_SOCO_EV,
+  CPC_SOCM_EV,
+  CPC_PAGE_EV,
+  CPC_REL_IND_EV,
+  CPC_ORIG_FAIL_EV,
+  CPC_REJECT_EV,
+  CPC_REL_REQ_EV,
+  CPC_ALERT_EV,
+  CPC_ANSWER_EV,
+  CPC_NEG_CONN_EV,
+  CPC_SWITCH_EV,
+  CPC_DISCONNECT_EV,
+  CPC_CP_CONN_EV,
+  CPC_CP_CONN_ANALOG_EV,
+  CPC_NUM_EVENTS,
+} CpcEvents;
+
+typedef enum {
+    DBC_IDLE_ST,
+    DBC_SYS_BUSY_ST,
+    DBC_CONNECTED_ST,
+    DBC_NUM_STATES
+} DbcStates;
+
+typedef enum {
+    DBC_SEND_MSG_EV,
+    DBC_DATA_BURST_RSP_EV,
+    DBC_PAGE_IND_EV,
+    DBC_CONNECT_IND_EV,
+    DBC_ALERT_IND_EV,
+    DBC_RELEASE_REQ_EV,
+    DBC_DISCONNECT_IND_EV,
+    DBC_PROCESS_Q_EV,
+    DBC_CONN_FAIL_EV,
+    DBC_ACCESS_EV,
+    DBC_IDLE_EV,
+    DBC_NUM_EVENTS
+} DbcEvents;
+
+typedef enum
+{
+  VSC_IDLE_ST,
+  VSC_ALERT_ST,
+  VSC_ANSWER_ST,
+  VSC_WFR_CONNECT_ST,
+  VSC_CONNECTED_ST,
+  VSC_NUM_STATES
+}VscStates;
+
+typedef enum
+{
+  VSC_VS_SwitchReq,
+  VSC_VS_OrigReq,
+  VSC_CPC_PageInd,
+  VSC_CPC_ConnectInd,
+  VSC_CPC_AlertInd,
+  VSC_VS_ConnectReq,
+  VSC_VS_ReleaseReq,
+  VSC_CPC_DisconnectInd,
+  VSC_CPC_ConnectFailInd,
+  VSC_NUM_EVENTS
+}VscEvents;
+
+typedef enum
+{
+  PSC_NULL_ST,
+  PSC_INIT_ST,
+  PSC_CONNECTED_ST,
+  PSC_NO_DMC_CONNECTED_ST,
+  PSC_DORMANT_ST,
+  PSC_RECONNECT_ST,
+  PSC_NUM_STATES
+}PscState;
+
+typedef enum
+{
+  PSC_CPC_AlertInd,
+  PSC_CPC_ConnectFailInd,
+  PSC_CPC_ConnectInd,
+  PSC_CPC_DisconnectInd,
+  PSC_CPC_PageInd,
+#ifndef MTK_CBP_REL_OPTIMIZE
+  PSC_CPC_ReleaseInd,
+#endif
+  PSC_CP_HandoffInd,
+  PSC_CP_IdleInd,
+  PSC_CP_NetworkPRevInd,
+  PSC_CP_PacketZoneIdInd,
+  PSC_CP_SidNidChangeInd,
+  PSC_CP_TcAssignedInd,
+  PSC_CP_ZoneInd,
+
+  PSC_PS_ConnectReq,
+  PSC_PS_DormantReq,
+  PSC_PS_OrigReq,
+  PSC_PS_PrefInd,
+  PSC_PS_ReleaseReq,
+
+  PSC_TC_ExpiredInd,
+  PSC_dmcInd,
+
+  PSC_CPC_TcEstablishedInd,  
+  PSC_PS_SuspendReq,
+  PSC_NUM_EVENTS
+}PscEvents;
+
+/*
+ *    Loopback Services Controller States
+ */
+typedef enum {
+   LSC_IDLE_ST,
+   LSC_ORIG_ST,
+   LSC_WFR_CONNECT_ST,
+   LSC_CONNECTED_ST,
+   LSC_DISCONNECT_ST,
+   LSC_NUM_STATES
+} LscStates;
+
+/*
+ *    Loopback Services Controller Events
+ */
+typedef enum {
+   LSC_ORIG_EV,
+   LSC_PAGE_EV,
+   LSC_CONN_IND_EV,
+   LSC_ALERT_EV,
+   LSC_RELEASE_EV,
+   LSC_DISCONNECT_EV,
+   LSC_CONN_FAIL_EV,
+   LSC_NUM_EVENTS
+} LscEvents;
+
+#if defined(VERIZON_EXTENSIONS)
+#define PSW_DEFAULT_SID_0                2004
+#define PSW_DEFAULT_SYSTEM_SELECT        AUTOMATIC_B
+#else
+#define PSW_DEFAULT_SID_0                7
+#define PSW_DEFAULT_SYSTEM_SELECT        AUTOMATIC
+#endif
+#define PSW_DEFAULT_SID_1                0
+#define PSW_DEFAULT_SID_2                0
+#define PSW_DEFAULT_SID_3                0
+#define PSW_DEFAULT_SID_4                0
+#define PSW_DEFAULT_SID_5                0
+#define PSW_DEFAULT_SID_6                0
+#define PSW_DEFAULT_SID_7                0
+#define PSW_DEFAULT_SID_8                0
+#define PSW_DEFAULT_SID_9                0
+#define PSW_DEFAULT_SID_10               0
+#define PSW_DEFAULT_SID_11               0
+#define PSW_DEFAULT_SID_12               0
+#define PSW_DEFAULT_SID_13               0
+#define PSW_DEFAULT_SID_14               0
+#define PSW_DEFAULT_SID_15               0
+#define PSW_DEFAULT_SID_16               0
+#define PSW_DEFAULT_SID_17               0
+#define PSW_DEFAULT_SID_18               0
+#define PSW_DEFAULT_SID_19               0
+
+#define PSW_DEFAULT_MOB_TERM_HOME                MOB_TERM_HOME_ENABLED
+#define PSW_DEFAULT_MOB_TERM_FOREIGN_SID         MOB_TERM_SID_ENABLED
+#define PSW_DEFAULT_MOB_TERM_FOREIGN_NID         MOB_TERM_NID_ENABLED
+
+#define PSW_DEFAULT_MOB_TERM_MAP         (PSW_DEFAULT_MOB_TERM_HOME | PSW_DEFAULT_MOB_TERM_FOREIGN_SID | PSW_DEFAULT_MOB_TERM_FOREIGN_NID)
+
+
+
+#define PSW_DEFAULT_SPC                  0x00000000
+#define PSW_DEFAULT_OTA_CAPABILITY_MAP   (OTA_ALLOW_OTAPA | OTA_ENABLE_OTA | OTA_ENABLE_SPASM | OTA_ENABLE_SPC_CHANGE)
+
+#define PSW_DEFAULT_HOME_SID             231
+#define PSW_DEFAULT_EX                   0
+#define PSW_DEFAULT_FIRSTCHP             333
+#define PSW_DEFAULT_DTX                  KAL_FALSE
+#define PSW_DEFAULT_FCCA                 333
+#define PSW_DEFAULT_LCCA                 313
+#define PSW_DEFAULT_FCCB                 334
+#define PSW_DEFAULT_LCCB                 354
+
+#define PSW_DEFAULT_NXTREG               0
+#define PSW_DEFAULT_SID                  0
+#define PSW_DEFAULT_LOCAID               0
+#define PSW_DEFAULT_PUREG                KAL_TRUE
+
+#define PSW_DEFAULT_CPCA                 283
+#define PSW_DEFAULT_CSCA                 691
+#define PSW_DEFAULT_CPCB                 384
+#define PSW_DEFAULT_CSCB                 777
+#define PSW_DEFAULT_AUTH_CAPABILITY_MAP  0
+#define PSW_DEFAULT_UIM_ID               0
+
+
+#define PSW_DEFAULT_ROAM_SETTING         0x0F
+#define PSW_DEFAULT_ROAM_SETTING_SPRINT  0x0F /* change from 0x0D to 0x0F on request from LG/sprint */
+
+
+/*- - - - - - End of NAM Defaults - - - - - - - - - - - - - - - - - */
+
+/*- - - - - - - - - - */
+/* MS CAP DB Defaults */
+/*- - - - - - - - - - */
+#define PSW_DEFAULT_SR1_SUPPORTED           KAL_TRUE
+#define PSW_DEFAULT_SR3_SUPPORTED           KAL_FALSE
+
+#define PSW_DEFAULT_RC_CLASS_1_SUPPORTED    KAL_TRUE
+#define PSW_DEFAULT_RC_CLASS_2_SUPPORTED    KAL_TRUE
+#define PSW_DEFAULT_RC_CLASS_3_SUPPORTED    KAL_TRUE
+
+#define PSW_DEFAULT_UI_ENCRYPT_SUPPORTED    UI_Encrypt_Disabled
+
+#define PSW_DEFAULT_ENHANCED_RC             KAL_TRUE
+
+/* no mobile assist */
+#define PSW_DEFAULT_REV_FCH_GATING_REQ      KAL_TRUE
+#define PSW_DEFAULT_STS_SUPPORTED           KAL_FALSE
+#define PSW_DEFAULT_THREE_XC_CH_SUPPORTED   KAL_FALSE
+#define PSW_DEFAULT_WLL_SUPPORTED           KAL_FALSE
+
+/* no bitmap included */
+#define PSW_DEFAULT_SO_BITMAP_IND           SO_0_BITS
+#define PSW_DEFAULT_TIERED_SERVICES         KAL_FALSE
+
+#define PSW_DEFAULT_QPCH_SUPPORTED          KAL_TRUE
+#define PSW_DEFAULT_SLOTTED_TIMER_SUPPORTED KAL_TRUE
+#define PSW_DEFAULT_CHS_SUPPORTED           KAL_FALSE
+#define PSW_DEFAULT_GATING_RATE_SET         GATING_RATE_SET_00
+#define PSW_DEFAULT_EXT_CAP_INCLUDED        KAL_FALSE
+#define PSW_DEFAULT_MABO_SUPPORTED          KAL_FALSE
+#define PSW_DEFAULT_SDB_SUPPORTED           KAL_FALSE
+#define PSW_DEFAULT_RLP_CAP_BLOP_LEN        0
+#define PSW_DEFAULT_RLP_CAP_BLOP_MAX_NAK_ROUNDS_FWD   5
+#define PSW_DEFAULT_RLP_CAP_BLOP_MAX_NAK_ROUNDS_REV   5
+#define PSW_DEFAULT_OTD_SUPPORTED           KAL_FALSE
+#define PSW_DEFAULT_FCH_SUPPORTED           KAL_TRUE
+#define PSW_DEFAULT_FCH_FRAME_SIZE          FCH_FS_20MS
+
+/* (1)1x advance feature is required by operator
+ * (2)FOR_RC_11/REV_RC_8 is only used for 1x advance
+ */
+#define PSW_DEFAULT_FWD_FCH_LEN             4
+#define PSW_DEFAULT_FWD_FCH_RC_MAP          (FOR_RC_1 | FOR_RC_2 | FOR_RC_3 | FOR_RC_4 | FOR_RC_5 | FOR_RC_11)
+#define PSW_DEFAULT_REV_FCH_LEN             3
+#define PSW_DEFAULT_REV_FCH_RC_MAP          (REV_RC_1 | REV_RC_2 | REV_RC_3 | REV_RC_4 |REV_RC_8)
+
+#define PSW_DEFAULT_DCCH_SUPPORTED          KAL_FALSE
+#define PSW_DEFAULT_DCCH_FRAME_SIZE         DCCH_FS_20MS
+#define PSW_DEFAULT_FWD_DCCH_LEN            3
+#define PSW_DEFAULT_FWD_DCCH_RC_MAP         0
+#define PSW_DEFAULT_REV_DCCH_LEN            2
+#define PSW_DEFAULT_REV_DCCH_RC_MAP         REV_RC_INVALID
+
+#define PSW_DEFAULT_FWD_SCH_SUPPORTED       KAL_TRUE
+#define PSW_DEFAULT_REV_SCH_SUPPORTED       KAL_TRUE
+
+/* 1x advance feature is not required by SCH */
+#define PSW_DEFAULT_FWD_SCH_LEN               3
+#define PSW_DEFAULT_FWD_SCH_RC_MAP            (FOR_RC_3 | FOR_RC_4 | FOR_RC_5)
+#define PSW_DEFAULT_FWD_SCH_NUM               1
+
+#define PSW_DEFAULT_FWD_TURBO_SUPPORTED_SCH1  KAL_TRUE
+#define PSW_DEFAULT_FWD_TURBO_SUPPORTED_SCH2  KAL_FALSE
+#define PSW_DEFAULT_FWD_MAX_TURBO_BLOCK_SIZE  4
+#define PSW_DEFAULT_FWD_CONV_SUPPORTED_SCH1   KAL_TRUE
+#define PSW_DEFAULT_FWD_CONV_SUPPORTED_SCH2   KAL_FALSE
+#define PSW_DEFAULT_FWD_MAX_CONV_BLOCK_SIZE   4
+
+/* 1x advance feature is not required by SCH */
+#define PSW_DEFAULT_REV_SCH_LEN               2
+#define PSW_DEFAULT_REV_SCH_RC_MAP            (REV_RC_3 | REV_RC_4 )
+#define PSW_DEFAULT_REV_SCH_NUM               1
+
+#define PSW_DEFAULT_REV_TURBO_SUPPORTED_SCH1  KAL_TRUE
+#define PSW_DEFAULT_REV_TURBO_SUPPORTED_SCH2  KAL_FALSE
+#define PSW_DEFAULT_REV_MAX_TURBO_BLOCK_SIZE  4
+#define PSW_DEFAULT_REV_CONV_SUPPORTED_SCH1   KAL_TRUE
+#define PSW_DEFAULT_REV_CONV_SUPPORTED_SCH2   KAL_FALSE
+#define PSW_DEFAULT_REV_MAX_CONV_BLOCK_SIZE   4
+
+#define PSW_DEFAULT_NON_OCTET_ALIGNED_DATA    KAL_FALSE
+#define PSW_DEFAULT_OCTET_ALIGNED_DATA        KAL_FALSE
+#define PSW_DEFAULT_REV_SCH_DURATION_UNIT     4       /* 100 ms */
+#define PSW_DEFAULT_REV_SCH_DURATION          0x01FF /* infinite */
+
+/* Information record for Extended Multiplex Option */
+#define PSW_DEFAULT_FWD_FCH_MO_SUPPORT        (MUX_OPTION_0x1 | MUX_OPTION_0x2)
+#define PSW_DEFAULT_REV_FCH_MO_SUPPORT        (MUX_OPTION_0x1 | MUX_OPTION_0x2)
+#define PSW_DEFAULT_FWD_DCCH_MO_SUPPORT       0
+#define PSW_DEFAULT_REV_DCCH_MO_SUPPORT       0
+#define PSW_DEFAULT_FWD_SCH_HIGHEST_RS1_MO    FOR_SCH_0x921_MUX_OPTION
+#define PSW_DEFAULT_FWD_SCH_HIGHEST_RS2_MO    FOR_SCH_0x912_MUX_OPTION
+#define PSW_DEFAULT_REV_SCH_HIGHEST_RS1_MO    FOR_SCH_0x921_MUX_OPTION
+#define PSW_DEFAULT_REV_SCH_HIGHEST_RS2_MO    FOR_SCH_0x912_MUX_OPTION
+
+/* Information record for Geo-location codes */
+#define PSW_DEFAULT_GEO_LOC_INCL              KAL_TRUE
+
+#if defined(SYS_OPTION_GPS_VASCO)
+ #define PSW_DEFAULT_GEO_LOC_TYPE              GL_AFLT_AND_GPS
+ #define PSW_DEFAULT_LOC_GPS_ACQ_CAP           3
+#elif ((defined SYS_OPTION_GPS_EXTERNAL) || (SYS_OPTION_GPS_HW ==SYS_GPS_LOCAL_INTERNAL))
+ #define PSW_DEFAULT_GEO_LOC_TYPE              GL_AFLT_AND_GPS
+ #define PSW_DEFAULT_LOC_GPS_ACQ_CAP           1
+#else
+ #define PSW_DEFAULT_GEO_LOC_TYPE              GL_AFLT
+ #define PSW_DEFAULT_LOC_GPS_ACQ_CAP           0
+#endif
+
+/* Encryption Mode Supported */
+#define PSW_DEFAULT_ENCRYPT_MODE_SUPPORTED    (Basic_Encrypt_Supported)
+
+/* Operating Modes, (OP_MODEp) settings */
+#define  OP_MODE0 0x80            /* IS-95B CDMA Band Class 1 and */
+                                  /* CDMA Band CLASS 4            */
+#define  OP_MODE1 0x40            /* IS-95B CDMA Band Class 0     */
+#define  OP_MODE2 0x20            /* IS-95B analog mode           */
+#define  OP_MODE3 0x10            /* IS-91 wide analog mode       */
+#define  OP_MODE4 0x08            /* IS-91 narrow analog mode     */
+
+/* Mobile Station Operation Mode */
+#define PSW_DEFAULT_OP_MODE                   ( OP_MODE0 | OP_MODE1 )
+
+#define PSW_DEFAULT_LOC_PILOT_PH_CAP          4  /* Sixteenth Chip Meas Cap */
+#define PSW_DEFAULT_LOC_CALC_CAP              0
+#define PSW_DEFAULT_LOC_TCP_CAP               KAL_TRUE
+#define PSW_DEFAULT_LOC_MS_ORIG_CAP           KAL_TRUE
+
+/* DCCH Only Ping Timeout 15 second */
+#define PSW_DEFAULT_DCCH_ONLY_PING_PERIOD     15000   /* MS resolution */
+#define PSW_DEFAULT_DATA_READY_TO_SEND        KAL_TRUE    /* DRS */
+#define PSW_DEFAULT_CHANNEL_INDICATOR         CH_IND_FCH
+#define PSW_DEFAULT_WLL_INCL                  KAL_FALSE   /* Not wireless local loop */
+
+/* PDCH params */
+#ifdef KDDI_EXTENSIONS
+#define PSW_DEFAULT_PDCH_CHM_SUPPORTED        KAL_FALSE
+#define PSW_DEFAULT_FWD_PDCH_SUPPORTED        KAL_FALSE
+#define PSW_DEFAULT_PDCH_ACK_DELAY            KAL_FALSE
+#else
+#define PSW_DEFAULT_PDCH_CHM_SUPPORTED        KAL_TRUE
+#define PSW_DEFAULT_FWD_PDCH_SUPPORTED        KAL_TRUE
+#define PSW_DEFAULT_PDCH_ACK_DELAY            KAL_TRUE
+#endif
+#define PSW_DEFAULT_EXTENDED_CHAN_INDICATOR   3
+#define PSW_DEFAULT_PDCH_NUM_ARQ_CHAN         0
+#define PSW_DEFAULT_FWD_PDCH_RC_MAP           0x7
+#define PSW_DEFAULT_CH_CONFIG_SUP_MAP         ( FPDCH_EXTCHIND_1 | FPDCH_EXTCHIND_2 |  \
+                                                FPDCH_EXTCHIND_3 | FPDCH_EXTCHIND_4 |  \
+                                                FPDCH_EXTCHIND_5 | FPDCH_EXTCHIND_6 )
+
+#define PSW_DEFAULT_SDB_DESIRED_ONLY          KAL_FALSE
+#define PSW_DEFAULT_INFO_REC_CAPABILITY_MAP   (CP_ACCESS_ENTRY_HO_ENABLED | \
+                                               CP_ACCESS_PROBE_HO_ENABLED | CP_MAHHO_ENABLED)
+/*- - - - - - End of MS CAP DB Defaults - - - - - - - - - - - - - - */
+
+
+/* Zone based registration list */
+typedef struct
+{
+    kal_uint16    regZone;      /* registration zone           */
+    kal_uint16    sid;          /* system id                   */
+    kal_uint16    nid;          /* network id                  */
+    kal_uint16    ageTimer;     /* age limit in seconds        */
+    kal_bool      timerEnabled;
+    kal_uint8     block;        /* PCS block or serving system */
+    SysCdmaBandT bandClass;
+} ZoneList;
+
+
+/* System/Network registration list */
+typedef struct
+{
+    kal_uint16    sid;          /* system id                   */
+    kal_uint16    nid;          /* network id                  */
+    kal_uint16    ageTimer;     /* age limit in seconds        */
+    kal_bool      timerEnabled;
+    kal_uint8     block;        /* PCS block or serving system */
+    SysCdmaBandT bandClass; 
+} SidNidList;
+
+
+/*****************************************************************************
+ * IMSI structure 
+ ****************************************************************************/
+
+  /* An IMSI is <= 15 digits in length. It is composed of:           */
+  /*     mcc (3 digits) + nmsi (up to 12 digits)                     */
+
+  /* An NMSI is <= 12 digits in length. Is is composed of:           */
+  /*     imsi_11_12 (2 digits) + imsi_s (10 digits)  */
+  /* In turn, imsi_s is composed of 2 parts:                         */
+  /*    imsi_s1 (upper 3 digits) + imsi_s2 (lower 7 digits)          */
+
+  /* If the imsi is Class 0 then imsiClass must be set to            */
+  /*  CP_IMSI_CLASS_0 and addrNum is set to 8                        */
+  /* If the imsi is Class 1 then imsiClass must be set to            */
+  /*  CP_IMSI_CLASS_1 and addrNum is set to # of digits in NMSI - 4  */
+
+typedef struct
+{
+    kal_uint16 mcc;                  /* Mobile Country Code                */
+    kal_uint8  imsi_11_12;           /* 7 bit  IMSI_11_12                  */
+    kal_uint16 imsi_s2;              /* 10 bit IMSI_S2 value               */
+    kal_uint32 imsi_s1;              /* 24 bit IMSI_S1 value               */
+    kal_uint8  imsiClass;            /* CP_IMSI_CLASS_0/1 indication       */
+    kal_uint8  addrNum;              /* number of digits in NMSI - 4       */
+} IMSIType;
+
+
+/*****************************************************************************
+ * IS-95 NAM structure
+ ****************************************************************************/
+typedef enum
+{
+    NAM_1 = 1,
+    NAM_2
+} NamNumber;
+
+typedef struct
+{
+    /* Permanent Mobile Station Indicators                                */
+    kal_uint32    ESN;            /* Place Holder for ESN, Read only         */
+    kal_uint8     SCMp[NAM_BANDS_SUPPORTED];
+                                /* Station Class Mark for each band       */
+    kal_uint8     SLOT_CYCLE_INDEXp; /* slot cycle index                     */
+    kal_uint16    MOB_FIRM_REVp;  /* mobile firmware revision                */
+    kal_uint8     MOB_MODELp;     /* Manufacturers  model number             */
+    kal_uint8     MOB_P_REVp[NAM_BANDS_SUPPORTED];
+                                /* Protocol revision number for each band */
+
+    /* Semi-Permanent Mobile Station Indicators                           */
+    kal_bool      ValidZoneEntry; /* indicates a valid ZONE_LIST entry        */
+    ZoneList  ZONE_LISTsp;    /* zone based registration list             */
+    kal_bool      ValidSidNidEntry; /* indicates a valid SID_NID_LISTsp entry */
+    SidNidList SID_NID_LISTsp;  /* System/Network registration list       */
+    kal_int32     BASE_LAT_REGsp; /* latitude from base last registered on    */
+    kal_int32     BASE_LONG_REGsp;/* longitude from base last registered on   */
+    kal_uint16    REG_DIST_REGsp; /* registration distance from last base     */
+    kal_uint8     LCKRSN_Psp;     /* lock code reason                         */
+    kal_uint8     MAINTRSNsp;     /* maintenance reason                       */
+    kal_bool      DIGITAL_REGsp;  /* previous registration on digtal system   */
+
+    /* NAM indicators                                                     */
+    kal_uint8     PREF_BANDp;     /* No longer used                           */
+    kal_uint8     RESERVED0;      /* Previous location for preferred mode     */
+    kal_uint8     PREF_BLOCK_BAND1p;/* No longer used                         */
+    kal_uint8     PREF_SERV_BAND0p; /* No longer used                         */
+
+    kal_uint8     SPCc;             /* left retry count */
+    kal_uint32    RESERVED1[2];    /* Previous Location for A_Key            */
+    kal_uint8     RESERVED2[7];    /* Place Holder for previous SSDA          */
+    kal_uint8     RESERVED3[8];    /* Place Holder for previous SSDB          */
+    kal_uint8     COUNTsp;         /* Call History Parameter                  */
+    kal_uint8     ValidIMSImap;    /* Refer to Bit Map text at top of file    */ 
+    IMSIType  IMSI_Mp;         /* IMSI_M - min                            */
+    IMSIType  IMSI_Tp;         /* IMSI_T                                  */
+    kal_uint8     ASSIGNING_TMSI_ZONE_LENsp;
+    kal_uint8     ASSIGNING_TMSI_ZONEsp[ CP_MAX_TMSI_ZONE_LEN ];
+    /*   assigning tmsi zone                    */
+    kal_uint32    TMSI_CODEsp;     /* tmsi code                               */
+    kal_uint32    TMSI_EXP_TIMEsp; /* tmsi expiration timer                   */
+    kal_uint16    SIDp[MAX_POSITIVE_SIDS]; /* home system ids stored in NAM   */
+    kal_uint16    NIDp[MAX_POSITIVE_SIDS]; /* home network ids stored in NAM  */
+    kal_uint16    NEG_SIDp[MAX_NEGATIVE_SIDS]; /* negative system ids stored in NAM */
+    kal_uint16    NEG_NIDp[MAX_NEGATIVE_SIDS]; /* negative network ids stored in NAM */
+    kal_uint8     MAX_SID_NID;     /* Max sid/nid pairs that can be stored in NAM*/
+    kal_uint8     STORED_POS_SID_NID;  /* No of Pos sid/nid pairs stored in NAM */
+    kal_uint8     STORED_NEG_SID_NID;  /* No of Neg sid/nid pairs stored in NAM */
+    kal_uint8     ACCOLCp;         /* access overload class                    */
+    kal_uint8     MobTermMap;      /* receive mobile terminated calls          */
+    kal_uint8     BCAST_ADDR_LENp; /* broadcast address length (0-not config.) */
+    kal_uint8     BCAST_ADDRp[ CP_BCAST_ADDRESS_MAX_SIZE];
+                               /* broadcast address data                   */
+    kal_uint32    SPCp;             /* Place holder for previous SPCp           */
+    kal_uint8     OTA_Capability_Map; /* See Bit Map explanation at top of file*/
+    kal_uint8     MDN_NUM_DIGITS;
+    kal_uint8     Mdn[NAM_MAX_MDN_DIGITS];  /* MDN - Mobile directory number   */
+
+    /* Analog support */
+    kal_uint16    HOME_SIDp;       /* home sid for analog system support       */
+    kal_uint8     EXp;             /* extended address support for analog      */
+    kal_uint16    FIRSTCHPp;       /* first paging channel                     */
+    kal_uint8     DTXp;            /* Analog DTX Option                        */
+    kal_uint16    FCCA, LCCA;      /* Analog Custom Control Channel Set A      */
+    kal_uint16    FCCB, LCCB;      /* Custom Control Channel Set B             */
+    kal_uint32    NXTREGsp;
+    kal_uint16    SIDsp;
+    kal_uint16    LOCAIDsp;
+    kal_bool      PUREGsp;
+
+    kal_uint16    CPCA, CSCA;      /* CDMA Primary (and Secondary) Channel A   */
+    kal_uint16    CPCB, CSCB;      /* CDMA Primary (and Secondary) Channel B   */
+    kal_uint8     RESERVED5[125];  /* Previous Mobile IP parameters            */
+    kal_uint8     Auth_Capability_Map; /* See Bit Map Explination at top of file */
+    kal_uint8     RESERVED6[89];   /* Previous IS801 Data Call parameters      */
+    kal_uint8     SmsTlMaxRetry;
+    kal_uint32    UIM_ID;
+    kal_uint8     RoamingSetting;  /* Only for Sprint                          */
+    kal_uint8     SystemSelect;
+    /* Following array reserved for future use. If new Nam parameter 
+     * needed then decrement from array below. Total Nam size is always 
+     * 560 bytes. */
+    kal_uint8     FUTURE_EXPAND_FIELDs[REMAINING_NAM_SIZE];
+
+    /* Checksum support */
+    kal_uint16   Checksum;            /* checksum for checksum support         */
+} PswIs95NamT;
+
+/*****************************/
+/* PswNam  definitions end   */
+/*****************************/
+
+
+/********************************/
+/* SecureData definitions start */
+/********************************/
+
+/* The goal is to use a EXE_SIZE_MSG_BUFF_3 when writing secure data
+ * to Dbm.  Hence, 
+ * sizeof(SecureDataStructT) + sizeof(DbmWriteMsgT) = EXE_SIZE_MSG_BUFF_3.
+ * sizeof(DbmWriteMsgT) = 14 bytes.  EXE_SIZE_MSG_BUFF_3 = 448
+ * SecureDataStructT must be 434 bytes.
+ * MobileId_Spread_Structure = 33 bytes.
+ * Revision + Akey(1&2) + SSD(1&2) + SPC + SIP + AAA + HA + checksum = 112 bytes.
+ * SECURE_DATA_RESERVED_SIZE = 434 - 33 - 112 -> 289 bytes.
+ */
+#define SECURE_DATA_RESERVED_SIZE     289
+
+typedef struct 
+{
+    kal_uint32  *SECURITY_LAYER_1;
+    kal_uint16   MOBILE_ID_2;
+    kal_uint32  *SECURITY_LAYER_2;
+    kal_uint16   MOBILE_ID_4;
+    kal_uint32  *SECURITY_LAYER_3;
+    kal_uint32  *SECURITY_LAYER_4;
+    kal_uint16   MOBILE_ID_1;
+    kal_uint32  *SECURITY_LAYER_5;
+    kal_uint16   MOBILE_ID_3;
+    kal_uint32  *SECURITY_LAYER_6;
+    kal_uint8   mobileIdType;
+} MobileId_Spread_Structure;
+
+typedef struct
+{
+    kal_uint16    Revision;        /* Secure Data Revision ID                  */
+    kal_uint32    AKEY_NAM1[2];    /* Binary Authentication Key for CAVE       */
+    kal_uint8     SSDA_NAM1[8];    /* Shared Secret Data 'A'                   */
+    kal_uint8     SSDB_NAM1[8];    /* Shared Secret Data 'B'                   */
+    kal_uint32    AKEY_NAM2[2];    /* Binary Authentication Key for CAVE       */
+    kal_uint8     SSDA_NAM2[8];    /* Shared Secret Data 'A'                   */
+    kal_uint8     SSDB_NAM2[8];    /* Shared Secret Data 'B'                   */
+    kal_uint32    SPCp;            /* Service Programming Code                 */
+    kal_uint8     FutureExpansion[SECURE_DATA_RESERVED_SIZE];
+    kal_uint16    checkSum;
+} SecureDataStructT;
+
+/********************************/
+/* SecureData definitions end   */
+/********************************/
+
+
+/*****************************/
+/* MsCapDb definitions start */
+/*****************************/
+
+/* define set of frame sizes */
+typedef enum
+{
+   DCCH_FS_20MS = 1,          /* 20 ms frame size only         */
+   DCCH_FS_5MS = 2,           /* 5 ms frame size only          */
+   DCCH_FS_5MS_AND_20MS = 3   /* both 5 and 20 ms frame size   */
+} DcchFrameSizeType;
+
+typedef enum
+{
+   FCH_FS_20MS = 0,
+   FCH_FS_5MS_AND_20MS = 1
+} FchFrameSizeType;
+
+/* define set of RC settings */
+
+typedef enum
+{
+   FOR_RC_1 = 0x100,
+   FOR_RC_2 = 0x80,
+   FOR_RC_3 = 0x40,
+   FOR_RC_4 = 0x20,
+   FOR_RC_5 = 0x10,
+   FOR_RC_6 = 0x8,
+   FOR_RC_7 = 0x4,
+   FOR_RC_8 = 0x2,
+   FOR_RC_9 = 0x1,
+   FOR_RC_10 = 0x200,
+   FOR_RC_11 = 0x400,
+   FOR_RC_12 = 0x800,
+   FOR_RC_INVALID = 0
+} ForRcType;
+
+typedef enum
+{
+   REV_RC_1 = 0x20,
+   REV_RC_2 = 0x10,
+   REV_RC_3 = 0x8,
+   REV_RC_4 = 0x4,
+   REV_RC_5 = 0x2,
+   REV_RC_6 = 0x1,
+   REV_RC_7 = 0x40,                 /*CBP8 --- Added for backword compatibility with CBP7*/
+   REV_RC_8 = 0x80,                 /*CBP8 --- Added for backword compatibility with CBP7*/
+   REV_RC_INVALID = 0
+} RevRcType;
+
+
+/* define set of RC Preference settings */
+typedef enum
+{
+   RC_PREF_1 = 1,
+   RC_PREF_2 = 2,
+   RC_PREF_3 = 3,
+   RC_PREF_4 = 4,
+   RC_PREF_5 = 5,
+   RC_PREF_6 = 6,
+   RC_PREF_7 = 7,
+   RC_PREF_8 = 8,
+   RC_PREF_9 = 9,
+   RC_PREF_10 = 10,
+   RC_PREF_11 = 11,
+   RC_PREF_12 = 12
+} RcPrefType;
+
+
+
+/* PDCH Channel Config Types (ExtChInd) Support Map */
+typedef enum
+{
+   FPDCH_EXTCHIND_INVALID = 0,
+   FPDCH_EXTCHIND_1 = 0x20,
+   FPDCH_EXTCHIND_2 = 0x10,
+   FPDCH_EXTCHIND_3 = 0x8,
+   FPDCH_EXTCHIND_4 = 0x4,
+   FPDCH_EXTCHIND_5 = 0x2, 
+   FPDCH_EXTCHIND_6 = 0x1
+} PDCHChCfgType;
+
+
+
+/* define set of Geo-location support */
+typedef enum
+{
+   GL_NO_SUPPORT = 0,
+   GL_AFLT = 1,
+   GL_AFLT_AND_GPS = 2,
+   GL_GPS = 3
+} GeoLocType;
+             
+typedef enum  
+{      
+   GATING_RATE_SET_00  =  0x00,     /* Gating rates 1                */
+   GATING_RATE_SET_01  =  0x01,     /* Gating rates 1 and 1/2        */ 
+   GATING_RATE_SET_10  =  0x02,     /* Gating rates 1, 1/2 and 1/4   */
+   GATING_RATE_SET_11  =  0x03      /* reserved                      */
+} GatingRateSetType;
+
+
+/* FOR SCH Multiplex options --------------------------------------- */
+typedef enum  
+{      
+   FOR_SCH_0x03_MUX_OPTION  = 0x0001,   /* For SCH 0x03 Mux options,  bit,   */
+   FOR_SCH_0x809_MUX_OPTION = 0x0002,   /* For SCH 0x809 Mux options, bit,   */
+   FOR_SCH_0x811_MUX_OPTION = 0x0004,   /* For SCH 0x811 Mux options, bit,   */
+   FOR_SCH_0x821_MUX_OPTION = 0x0008,   /* For SCH 0x821 Mux options, bit,   */
+   FOR_SCH_0x905_MUX_OPTION = 0x0010,   /* For SCH 0x905 Mux options, bit,   */
+   FOR_SCH_0x909_MUX_OPTION = 0x0020,   /* For SCH 0x909 Mux options, bit,   */
+   FOR_SCH_0x911_MUX_OPTION = 0x0040,   /* For SCH 0x911 Mux options, bit,   */
+   FOR_SCH_0x921_MUX_OPTION = 0x0080,   /* For SCH 0x921 Mux options, bit,   */
+
+   FOR_SCH_0x04_MUX_OPTION  = 0x0100,   /* For SCH 0x04 Mux options,  bit,   */
+   FOR_SCH_0x80a_MUX_OPTION = 0x0200,   /* For SCH 0x80a Mux options, bit,   */
+   FOR_SCH_0x812_MUX_OPTION = 0x0400,   /* For SCH 0x812 Mux options, bit,   */
+   FOR_SCH_0x822_MUX_OPTION = 0x0800,   /* For SCH 0x822 Mux options, bit,   */
+   FOR_SCH_0x906_MUX_OPTION = 0x1000,   /* For SCH 0x906 Mux options, bit,   */
+   FOR_SCH_0x90a_MUX_OPTION = 0x2000,   /* For SCH 0x90a Mux options, bit,   */
+   FOR_SCH_0x912_MUX_OPTION = 0x4000,   /* For SCH 0x912 Mux options, bit,   */
+   FOR_SCH_0x922_MUX_OPTION = 0x8000    /* For SCH 0x922 Mux options, bit,   */
+} ForSchMuxOptions;
+
+
+/* REV SCH Multiplex options --------------------------------------- */
+typedef enum  
+{      
+   REV_SCH_0x03_MUX_OPTION  = 0x0001,   /* Rev SCH 0x03 Mux options,  bit,   */
+   REV_SCH_0x809_MUX_OPTION = 0x0002,   /* Rev SCH 0x809 Mux options, bit,   */
+   REV_SCH_0x811_MUX_OPTION = 0x0004,   /* Rev SCH 0x811 Mux options, bit,   */
+   REV_SCH_0x821_MUX_OPTION = 0x0008,   /* Rev SCH 0x821 Mux options, bit,   */
+   REV_SCH_0x905_MUX_OPTION = 0x0010,   /* Rev SCH 0x905 Mux options, bit,   */
+   REV_SCH_0x909_MUX_OPTION = 0x0020,   /* Rev SCH 0x909 Mux options, bit,   */
+   REV_SCH_0x911_MUX_OPTION = 0x0040,   /* Rev SCH 0x911 Mux options, bit,   */
+   REV_SCH_0x921_MUX_OPTION = 0x0080,   /* Rev SCH 0x921 Mux options, bit,   */
+
+   REV_SCH_0x04_MUX_OPTION  = 0x0100,   /* Rev SCH 0x04 Mux options,  bit,   */
+   REV_SCH_0x80a_MUX_OPTION = 0x0200,   /* Rev SCH 0x80a Mux options, bit,   */
+   REV_SCH_0x812_MUX_OPTION = 0x0400,   /* Rev SCH 0x812 Mux options, bit,   */
+   REV_SCH_0x822_MUX_OPTION = 0x0800,   /* Rev SCH 0x822 Mux options, bit,   */
+   REV_SCH_0x906_MUX_OPTION = 0x1000,   /* Rev SCH 0x906 Mux options, bit,   */
+   REV_SCH_0x90a_MUX_OPTION = 0x2000,   /* Rev SCH 0x90a Mux options, bit,   */
+   REV_SCH_0x912_MUX_OPTION = 0x4000,   /* Rev SCH 0x912 Mux options, bit,   */
+   REV_SCH_0x922_MUX_OPTION = 0x8000    /* Rev SCH 0x922 Mux options, bit,   */
+} RevSchMuxOptions;
+
+typedef enum
+{
+   CP_ACCESS_ENTRY_HO_ENABLED  = 0x01,
+   CP_ACCESS_PROBE_HO_ENABLED  = 0x02,
+   CP_ANALOG_SEARCH_ENABLED    = 0x04,
+   CP_HOPPING_BEACON_ENABLED   = 0x08, 
+   CP_MAHHO_ENABLED            = 0x10,
+   CP_PUF_ENABLED              = 0x20,
+   CP_ANALOG_553A_ENABLED      = 0x40
+} InfoRecCapability;
+
+/* Multiplex options -------------------------------------- */
+typedef enum  
+{      
+   MUX_OPTION_0x1      = 0x1,
+   MUX_OPTION_0x2      = 0x2,
+   MUX_OPTION_0x704    = 0x4,
+   MUX_OPTION_0xF00    = 0xF00
+} MuxOptionsTypes;
+
+typedef enum
+{
+   FOR_FCH,
+   REV_FCH,
+   FOR_DCCH,
+   REV_DCCH
+} TrafficChannelTypes;
+
+/* define set of bitmap indicator */
+typedef enum
+{
+   SO_0_BITS = 0,
+   SO_4_BITS = 1,
+   SO_8_BITS = 2,
+   SO_16_BITS = 3
+} ServOptBitmapInd;
+
+typedef enum
+{
+   UI_Encrypt_Disabled = 0,
+   UI_Encrypt_ORYX_Enabled = 1
+} UIEncryptSuppType;
+
+typedef enum
+{
+   Basic_Encrypt_Supported = 0,
+   Basic_And_Enhanced_Supported = 1
+} EncryptModeSuppType;
+
+typedef enum
+{
+   CH_IND_RESERVED = 0x00,
+   CH_IND_FCH      = 0x01,
+   CH_IND_DCCH     = 0x02,
+   CH_IND_FCH_AND_DCCH = 0x03
+} ChIndType;
+
+typedef struct
+{
+   FchFrameSizeType  fchFrameSize;           /* FCH_FRAME_SIZE, FCH frame Size capability indicator   */
+   kal_uint8             forFchLen;              /* FOR_FCH_LEN, Fwd Fundemental Channel Config Info. Len */
+/* HAC-061400 ForRcType */
+   kal_uint16            forFchRcMap;            /* FOR_FCH_RC_MAP Forward Fundemental Radio Config. Info.*/
+   kal_uint8             revFchLen;              /* REV_FCH_LEN, Rev Fundemental Channel Config Info. Len */
+   RevRcType         revFchRcMap;            /* REV_FCH_RC_MAP Reverse Fundemental Radio Config. Info.*/
+} FchTypeSpecificFieldsType;
+
+
+typedef struct
+{
+   DcchFrameSizeType dcchFrameSize;          /* DCCH_FRAME_SIZE, DCCH frame Size capability indicator */
+   kal_uint8             forDcchLen;             /* FOR_DCCH_LEN, Fwd Dedicated Ctrl Ch. Config Info. Len */
+/* HAC-061400    ForRcType */
+   kal_uint16            forDcchRcMap;           /* FOR_DCCH_RC_MAP Fwd Dedicated Ch. Radio Config. Info. */
+   kal_uint8             revDcchLen;             /* REV_DCCH_LEN, Rev Dedicated Ctrl Ch. Config Info. Len */
+   RevRcType         revDcchRcMap;           /* REV_DCCH_RC_MAP Rev Dedicated Ch. Radio Config. Info. */
+} DcchTypeSpecificFieldsType;
+
+
+typedef struct
+{
+   kal_uint8             forSchLen;              /* FOR_SCH_LEN, Fwd Supplemental length in 3 bit uints   */
+   kal_uint16            forSchRcMap;            /* FOR_SCH_RC_MAP, Fwd Supplemental Channel Radio Config  
+                                                Information.                                          */
+   kal_uint8             forSchNum;              /* FOR_SCH_NUM, Number of Forward Supplemental Cannel    */               
+   kal_bool              forTurboSupportedSch1;  /* FOR_TURBO_SUPPORTED, 1 Ch Fwd Turbo Coding Supported  */
+   kal_bool              forTurboSupportedSch2;  /* FOR_TURBO_SUPPORTED, 2 Ch Fwd Turbo Coding Supported  */
+   kal_uint8             forMaxTurboBlockSize;   /* FOR_MAX_TURBO_BLOCK_SIZE, Fwd Max Turbo Block Size    */
+   kal_bool              forConvSupportedSch1;   /* FOR_CONV_SUPPORTED, 1 Ch Fwd convolutional Coding Supported */
+   kal_bool              forConvSupportedSch2;   /* FOR_CONV_SUPPORTED, 2 Ch Fwd convolutional Coding Supported */
+   kal_uint8             forMaxConvBlockSize;    /* FOR_MAX_CONV_BLOCK_SIZE, Fwd Max Conv. Code Block Size*/
+} ForSchTypeSpecificFieldsType;
+
+
+typedef struct
+{
+   kal_uint8             revSchLen;              /* REV_SCH_LEN, Rev Supplemental length in 3 bit uints   */
+   kal_uint8             revSchRcMap;            /* REV_SCH_RC_MAP Rev Dedicated Ch. Radio Config. Info.  */
+   kal_uint8             revSchNum;              /* REV_SCH_NUM, Number of Reverse Supplemental Cannel    */               
+   kal_bool              revTurboSupportedSch1;  /* REV_TURBO_SUPPORTED, 1 Ch Rev Turbo Coding Supported  */
+   kal_bool              revTurboSupportedSch2;  /* REV_TURBO_SUPPORTED, 2 Ch Rev Turbo Coding Supported  */
+   kal_uint8             revMaxTurboBlockSize;   /* REV_MAX_TURBO_BLOCK_SIZE, Rev Max Turbo Block Size    */
+   kal_bool              revConvSupportedSch1;   /* REV_CONV_SUPPORTED, 1 Ch Rev convolutional Coding Supported */
+   kal_bool              revConvSupportedSch2;   /* REV_CONV_SUPPORTED, 2 Ch Rev convolutional Coding Supported */
+   kal_uint8             revMaxConvBlockSize;    /* REV_MAX_CONV_BLOCK_SIZE, Rev Max Conv. Code Block Size*/
+} RevSchTypeSpecificFieldsType;
+
+typedef struct
+{
+   kal_uint8             maxMsNakRoundsFwd;      /* MAX_MS_NAK_ROUNDS_FWD Maximum number of RLP_NAK rounds
+                                                supported by the MS on the forward traffic channel    */             
+   kal_uint8             maxMsNakRoundsRev;      /* MAX_MS_NAK_ROUNDS_REV Maximum number of RLP_NAK rounds
+                                                supported by the MS on the reverse traffic channel    */  
+} RlpCapBlopLenType;
+
+
+/* define structure for MS capability database */
+typedef struct
+{
+   kal_bool              sr1Supported;
+   kal_bool              sr3Supported;
+   kal_bool              rcClass1Supported;
+   kal_bool              rcClass2Supported;
+   kal_bool              rcClass3Supported;
+   UIEncryptSuppType UIEncryptionSupported;
+   kal_bool              enhancedRc;
+   kal_uint16            Reserved1;
+   kal_bool              revFchGatingReq;
+   kal_bool              stsSupported;
+   kal_bool              threeXCchSupported;
+   kal_bool              wllSupported;
+   ServOptBitmapInd  soBitmapInd;
+   kal_uint8              Reserved;
+   kal_bool              tieredServices;
+   /*------- Information record for Capability Informtion --------------------------------------------*/
+   kal_bool              qpchSupported;          /* QPCH, Quick Paging Channel Supported                  */
+   kal_bool              slottedTimerSupported;  /* SLOTTED_TIMER, Slotted Timer Supported                */
+   kal_bool              chsSupported;           /* CHS_SUPPORTED, Control Hold Mode indicator            */
+   GatingRateSetType gatingRateSet;          /* GATING_RATE_SET, set of supported Reverse Pilot 
+                                                gating rates.                                         */
+   kal_bool              extCapIncluded;         /* EXT_CAP_INCLUDED, Extended Capabilities Included 
+                                                Indicator                                             */
+   kal_bool              maboSupported;          /* MABO, Mobile Assisted Burst Operation Capability 
+                                                indicator                                             */
+   kal_bool              sdbSupported;           /* SDB, Short Data Burst supported Indicator             */
+   kal_uint8             rlpCapBlopLen;          /* Field NOT USED. Delete during next MS Cap Cleanup     */
+   RlpCapBlopLenType rlpCapBlop;             /* RLP_CAP_BLOP, RLP capability information block of bits*/
+
+   /*------- Information record for Channel Configuration Capability Information ---------------------*/
+   kal_bool              otdSupported;           /* OTD_SUPPORTED, OTD Supported Indicator                */
+
+   kal_bool              fchSupported;           /* FCH_SUPPORTED, Fundemental Ch. Supported Indicator    */
+
+   /* FCH Type-specific fields, FCH Capability Infornmation */
+   FchTypeSpecificFieldsType fchTypeSpecificFields; 
+
+   kal_bool              dcchSupported;          /* DCCH_SUPPORTED, Dedicated Ctrl Ch supported Indicator */
+
+   /* DCCH Type-specific fields, DCCH Capability Information*/
+   DcchTypeSpecificFieldsType dcchTypeSpecificFields; 
+
+   kal_bool              forSchSupported;        /* FOR_SCH_SUPPORTED, Fwd Supplemental Ch. Supported     */ 
+
+   /* FOR_SCH, Type-specific fields, Forward Supplemental
+      Channel Configuration Capability Information          */
+   ForSchTypeSpecificFieldsType forSchTypeSpecificFields;
+
+   kal_bool              revSchSupported;        /* REV_SCH_SUPPORTED, Reverse Supplemental Ch. Supported */ 
+
+   /* REV_SCH Type-specific fields, Reverse Supplemental
+      Channel Configuration Capability Information          */
+   RevSchTypeSpecificFieldsType revSchTypeSpecificFields;
+
+   /* Field to hardcode rev sch duration unit (9 bit), if   */
+   /* set to 0x0000 rc will do the calculations itself      */
+   kal_uint8             revSchDurationUnit;
+   kal_uint16            revSchDuration; 
+  
+    /* NONOCTET_ALIGNED_DATA Non-octet Aligned Data Block 
+       supported indicator.                                  */
+   kal_bool              nonOctetAlignedData;
+
+   kal_bool              octetAlignedData;       /* OCTET_ALIGNED_DATA, Octet Aligned Data Block supported 
+                                                                                   indicator          */
+   /*------- Information record for Extended Multiplex Option ----------------------------------------*/
+
+   kal_uint8             forFchMoSupport;        /* For FCH Mux option supported */
+
+   kal_uint8             revFchMoSupport;        /* Rev FCH Mux option supported */
+
+   kal_uint8             forDcchMoSupport;       /* MO_FOR_DCCH, Forward Dedicated Control Channel 
+                                                Multiplex Options                                     */
+   kal_uint8             revDcchMoSupport;       /* MO_REV_DCCH, Reverse Dedicated Control Channel 
+                                                Multiplex Options                                     */
+   ForSchMuxOptions  forSchHighestRs1Mo;     /* The highest Rate Set 1 Forward Supplemental 
+                                                Channel Multiplex option supported                    */
+   ForSchMuxOptions  forSchHighestRs2Mo;     /* The highest Rate Set 2 Forward Supplemental 
+                                                Channel Multiplex option supported                    */
+   RevSchMuxOptions  revSchHighestRs1Mo;     /* The highest Rate Set 1 Reverse Supplemental 
+                                                Channel Multiplex option supported                    */
+   RevSchMuxOptions  revSchHighestRs2Mo;     /* The highest Rate Set 2 Reverse Supplemental 
+                                                Channel Multiplex option supported                    */
+   /*------- Information record for Geo-location codes -----------------------------------------------*/
+
+   GeoLocType        geoLocType;             /* GEO_LOC, Geo-location Codes                           */
+   kal_uint8             Reserved2;              /* Previous bandSubclassInfo_5 location        */
+   kal_uint8             Reserved3;              /* Previous bandSubclassInfo_2_10 location     */
+
+   EncryptModeSuppType encryptModeSupported; /* ENCRYPTION_SUPPORTED (Basic/Basic&Enhanced) */
+
+   kal_uint8             opMode;                 /* Mobile Stations Operation Mode */
+
+   /* IS801 Location Services Capabilities */
+   kal_uint8             locPilotPhCap;          /* Mapping in IS801-1 Table 3.2.4.2-2 */
+   kal_uint16            locGPSAcqCap;           /* Mapping in IS801-1 Table 3.2.4.2-3 */
+   kal_uint16            locLocCalcCap;          /* Mapping in IS801-1 Table 3.2.4.2-4 */
+   kal_bool              locTCPCap;              /* Location Services TCP capability */
+   kal_bool              locMSOrigCap;           /* Location Services MS Originated capability */
+
+   /* DCCH Only Ping Time Out */
+   kal_uint16            dcchOnlyPingPeriod;
+
+   kal_bool              dataReadyToSend;        /* DRS */
+   ChIndType         channelIndicator;       /* CH_IND */
+   kal_bool              pdchChmSupported;
+   kal_uint8             extendedChannelIndicator; /* EXT_CH_IND */
+   kal_bool              wllIncl;          /* WLL_INCL */
+   kal_uint8             wllDeviceType;    /* WLL_DEVICE_TYPE */
+   kal_bool              forPdchSupported; /* FOR_PDCH_SUPPORTED */
+   kal_bool              ackDelay;         /* PDCH: ACK_DELAY */
+   kal_uint8             numArqChan;       /* PDCH: NUM_ARQ_CHAN */
+   kal_uint8             forPdchRcMap;     /* PDCH: FOR_PDCH_RC_MAP */
+   kal_uint8             chConfigSupMap;   /* PDCH: CH_CONFIG_SUP_MAP */
+   kal_bool              sdbDesiredOnly;   /* Short data burst desired only */
+
+   kal_uint8             InfoRecCapabilityMap;
+   kal_bool              geoLocIncl;
+   kal_uint16            checksum;
+
+} MsCapDb;
+
+/*****************************/
+/* MsCapDb definitions end   */
+/*****************************/
+
+
+/*****************************/
+/* DbmData definitions start */
+/*****************************/
+
+/* TEMPORARY UNTIL DBM CHANGES MADE FOR MAX_MRU_RECORDS=10 */
+#define MAX_MRU_RECORDS     10
+
+
+/*------------------------------------------------------------------------
+* Nam Data Structures
+*  The name of the structure is misleading. It should support everything
+*  IS95, T53 and AMPS.
+*
+*  This structure should exactly match the structure "IS95Nam" in the
+*   protocol engine header file "namdata.h"
+*------------------------------------------------------------------------*/
+
+typedef struct
+{
+   SysCdmaBandT  CdmaBand[MAX_MRU_RECORDS];
+   kal_uint16        FreqChan[MAX_MRU_RECORDS];
+} PswDbmDataT;
+
+/*****************************/
+/* DbmData definitions end */
+/*****************************/    
+
+
+/*****************************/
+/* PswMisc definitions start */
+/*****************************/
+
+/* PSW MISC parameters reported by DBM */
+typedef enum
+{
+  PSW_SIM_QPCH_FEATURE         = 0,
+  PSW_DYNAMIC_QPCH_FEATURE,
+  PSW_QPCH_CCI_FEATURE,
+  PSW_RESERVED_5_FEATURE,
+  PSW_RESERVED_4_FEATURE,
+  PSW_RESERVED_3_FEATURE,
+  PSW_RESERVED_2_FEATURE,
+  PSW_RESERVED_1_FEATURE
+} PswFeatureBitNumT;
+
+
+typedef enum
+{
+  PHY_1X_DIVERSITY_ENABLED = 0,
+  PHY_RESERVED_3_FEATURE   = 1,
+  PHY_RESERVED_2_FEATURE   = 2,
+  PHY_RESERVED_1_FEATURE   = 3,
+  PHY_1X_IC_CONTROL        = 4, /* IC Control occupies 4 bits */
+} PhyFeatureBitNumT;
+
+
+typedef enum
+{
+  PSW_SO73_ENABLED          = 0,
+  PSW_SO73_WBENABLED,
+  PSW_VOICE_SERVICE_ENABLED,
+  PSW_DDTM_ENABLED,
+  PSW_PRL_ENABLED,
+  PSW_RESERVED_3_ENABLED,
+  PSW_RESERVED_2_ENABLED,
+  PSW_RESERVED_1_ENABLED
+} PswEnableFlagsBitNumT;
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+typedef struct
+{
+   kal_bool   defineRcForAllSo;
+   kal_uint8  forRc;
+   kal_uint8  revRc;
+} PswDefineRcT;
+#endif
+
+typedef struct
+{
+   kal_uint8  StartupActiveNam;
+   kal_uint8  PswFeatureFlags;
+   kal_uint8  PhyFeatureFlags;
+   kal_uint8  PswMiscEnableFlags;
+   kal_uint8  pendingReg;
+   kal_uint16 PrefHomeMOSO;
+   kal_uint16 PrefHomeMTSO;
+   kal_uint16 PrefRoamMOSO;
+   kal_bool   IS683NamLock;
+   kal_uint8  DfsEcIoThresh;
+   kal_uint16 qpchPilotEcIoThreshLow;
+   kal_uint16 qpchPilotEcIoThreshHigh;
+   kal_uint8  reserved_0;
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+   PswDefineRcT defineRc;
+#endif
+   kal_uint16 checksum;
+} PswMiscT;
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+#define KMC_PUBLIC_KEY_LEN 48/* KMC public key length by byte = 48 */
+
+typedef struct
+{
+   kal_uint8     KMCKeyVersion;/* KMC key version */
+   kal_uint8     KMCPublicKey[KMC_PUBLIC_KEY_LEN];/* KMC public key */
+   kal_uint8     reserved_0;
+   kal_uint16    checksum;
+} PswDbmCryptDataT;
+#endif
+
+typedef struct
+{
+   kal_uint8    mobileIdType;
+   kal_uint64   value;
+} PswMobileIDT;
+
+/*****************************/
+/* PswMisc definitions end   */
+/*****************************/
+
+
+#endif  /* _PSW_NVRAM_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswairmsg.h b/mcu/interface/protocol/as_c2k/1xrtt/pswairmsg.h
new file mode 100644
index 0000000..63e5b89
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswairmsg.h
@@ -0,0 +1,657 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+#ifndef _PSWAIRMSG_H_
+
+#define _PSWAIRMSG_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "psw_nvram.h"
+
+typedef enum
+{
+  /* define the page message types */
+   CP_SPY_QPCH_PI_MESSAGE             =0, /* MSG id only used to display QPCH PI parameters in Overhead Signaling Spy window */
+   CP_SYSTEM_PARS_MESSAGE             =1,
+   CP_ACCESS_PARS_MESSAGE             =2,
+   CP_NEIGHBOR_LIST_MESSAGE           =3,
+   CP_CDMA_CHANNEL_LIST               =4,
+
+  /* The following two messages are obsolete in 95B */
+   CP_SLOTTED_PAGE                    =5,
+   CP_PAGE_MESSAGE                    =6,
+
+   CP_ORDER_MESSAGE                   =7,
+   CP_CHANNEL_ASSIGN_MESSAGE          =8,
+   CP_DATA_BURST_MESSAGE              =9,
+   CP_AUTH_CHALL_MESSAGE              =10,
+   CP_SSD_UPDATE_MESSAGE              =11,
+   CP_FEATURE_NOTIFICATION_MESSAGE    =12,
+   CP_EXT_SYSTEM_PARS_MESSAGE         =13,
+   CP_EXT_NEIGHBOR_LIST_MESSAGE       =14,
+   CP_STATUS_REQUEST_MESSAGE          =15,
+   CP_SERVICE_REDIRECT_MESSAGE        =16,
+   CP_GENERAL_PAGE_MESSAGE            =17,
+   CP_GLOBAL_SERVICE_REDIRECT_MESSAGE =18,
+   CP_TMSI_ASSIGNMENT_MESSAGE         =19,
+   CP_PACA_MESSAGE                    =20,
+   CP_EXT_CHANNEL_ASSIGN_MESSAGE      =21,
+   CP_GEN_NEIGHBOR_LIST_MESSAGE       =22,
+
+  /* new message types for IS-2000 Rev.0 */
+   CP_USER_ZONE_ID_MESSAGE            =23,
+   CP_PRI_NGHBR_LST_MESSAGE           =24,
+
+   CP_EXT_GLOB_SERV_REDIR_MESSAGE     =26,
+   CP_EXT_CDMA_CHAN_LST_MESSAGE       =27,
+   CP_USER_ZONE_REJECT_MESSAGE        =28,
+
+/* #ifdef IS2000_REV_A */
+  /* new message types for IS-2000 Rev.A */
+   CP_ANSI_41_SYS_PARS_MESSAGE        =29,
+   CP_MC_RR_PARS_MESSAGE              =30,
+   CP_ANSI_41_RAND_MESSAGE            =31,
+   CP_ENH_ACCESS_PARS_MESSAGE         =32,
+   CP_UNIV_NGHBR_LST_MESSAGE          =33,
+   CP_SECURITY_MODE_COMMAND_MESSAGE   =34,
+   CP_UNIV_PAGE_MESSAGE_1             =35,
+   CP_UNIV_PAGE_MESSAGE_2             =36,
+   CP_UNIV_PAGE_MESSAGE_3             =37,
+   CP_UNIV_PAGE_MESSAGE_4             =38,
+   CP_AUTH_REQ_MESSAGE                =39,
+   CP_MEID_EXT_CHANNEL_ASSIGN_MESSAGE =46,
+
+#ifdef MTK_DEV_C2K_IRAT
+   CP_ALTERNATIVE_TECH_INFO_MESSAGE  =47,
+#endif /* MTK_DEV_C2K_IRAT */
+
+/* #else
+  #define CP_MAX_VALID_PAGE_MESSAGE          28
+#endif    */
+   CP_CSCH_GENERAL_EXTENSION_MESSAGE  =63 /* supported (only Radio Config Parms record used for now) */
+
+} PchMessageTypeE;
+
+typedef enum
+{
+  /* Access Channel Message types */
+   CP_ACH_REGISTRATION          =1,
+   CP_ACH_ORDER                 =2,
+   CP_ACH_DATA_BURST            =3,
+   CP_ACH_ORIGINATION           =4,
+   CP_ACH_PAGE_RESPONSE         =5,
+   CP_ACH_AUTH_CHALL            =6,
+   CP_ACH_STATUS_RESPONSE       =7,
+   CP_ACH_TMSI_ASSIGNMENT_COMP  =8,
+   CP_ACH_PACA_CANCEL           =9,
+   CP_ACH_EXT_STATUS_RESPONSE   =10,
+   CP_ACH_RECONNECT             =15,
+   CP_ACH_LAST_MESSAGE          =16
+}AchMessageTypeE;
+
+typedef enum
+{
+  CP_FTC_NO_MESSAGE,
+  CP_FTC_ORDER_MESSAGE,
+  CP_FTC_AUTHENTICATION_CHALLENGE_MESSAGE,
+  CP_FTC_ALERT_WITH_INFO_MESSAGE,
+  CP_FTC_DATA_BURST_MESSAGE,
+  CP_FTC_HANDOFF_DIRECTION_MESSAGE,
+  CP_FTC_ANALOG_HANDOFF_DIRECTION_MESSAGE,
+  CP_FTC_IN_TRAFFIC_SYSTEM_PARAMETERS_MESSAGE,
+  CP_FTC_NEIGHBOR_LIST_UPDATE_MESSAGE,
+  CP_FTC_SEND_BURST_DTMF_MESSAGE,
+  CP_FTC_POWER_CONTROL_PARAMETERS_MESSAGE,
+  CP_FTC_RETRIEVE_PARAMETERS_MESSAGE,
+  CP_FTC_SET_PARAMETERS_MESSAGE,
+  CP_FTC_SSD_UPDATE_MESSAGE,
+  CP_FTC_FLASH_WITH_INFORMATION_MESSAGE,
+  CP_FTC_MOBILE_STATION_REGISTERED_MESSAGE,
+  CP_FTC_STATUS_REQUEST_MESSAGE,
+  CP_FTC_EXTENDED_HANDOFF_DIRECTION_MESSAGE,
+  CP_FTC_SERVICE_REQUEST_MESSAGE,
+  CP_FTC_SERVICE_RESPONSE_MESSAGE,
+  CP_FTC_SERVICE_CONNECT_MESSAGE,
+  CP_FTC_SERVICE_OPTION_CONTROL_MESSAGE,
+  CP_FTC_TMSI_ASSIGNMENT_MESSAGE,
+  CP_FTC_SERVICE_REDIRECTION_MESSAGE,
+  CP_FTC_SUPPLEMENTAL_CHANNEL_ASSIGNMENT_MESSAGE,
+  CP_FTC_POWER_CONTROL_MESSAGE,
+  CP_FTC_EXTENDED_NEIGHBOR_LIST_UPDATE_MESSAGE,
+  CP_FTC_CANDIDATE_FREQUENCY_SEARCH_REQUEST_MESSAGE,
+  CP_FTC_CANDIDATE_FREQUENCY_SEARCH_CONTROL_MESSAGE,
+  CP_FTC_POWER_UP_FUNCTION_MESSAGE,
+  CP_FTC_POWER_UP_FUNCTION_COMPLETION_MESSAGE,
+  CP_FTC_GENERAL_HANDOFF_DIRECTION_MESSAGE = 31,
+  CP_FTC_RESOURCE_ALLOCATION_MESSAGE = 32,
+  CP_FTC_EXTENDED_RELEASE_MESSAGE = 33,
+  CP_FTC_UNIVERSAL_HANDOFF_DIRECTION_MESSAGE = 34,
+  CP_FTC_EXTENDED_SUPPLEMENTAL_CHANNEL_ASSIGNMENT_MESSAGE = 35,
+  CP_FTC_MOBILE_ASSISTED_BURST_OPERATION_PARAMETERS_MESSAGE = 36,
+  CP_FTC_USER_ZONE_REJECT_MESSAGE = 37,
+  CP_FTC_USER_ZONE_UPDATE_MESSAGE = 38,
+  CP_FTC_EXTENDED_ALERT_WITH_INFORMATION_MESSAGE = 40,
+  CP_FTC_EXTENDED_FLASH_WITH_INFORMATION_MESSAGE =42,
+  CP_FTC_RATE_CHANGE_MESSAGE = 51,
+  CP_FTC_MEID_UNIVERSAL_HANDOFF_DIRECTION_MESSAGE = 53,
+  CP_FTC_RADIO_CONFIG_PARAM_MESSAGE = 54,
+  CP_FTC_MAX_MESSAGES,
+  CP_FTC_GENERAL_EXTENSION_MESSAGE = 255 /* special case */
+} FTCMessageType;
+
+typedef enum
+{
+  CP_RTC_ORDER_MESSAGE = 1,
+  CP_RTC_AUTHENTICATION_CHALLENGE_RESPONSE_MESSAGE,
+  CP_RTC_FLASH_WITH_INFORMATION_MESSAGE,
+  CP_RTC_DATA_BURST_MESSAGE,
+  CP_RTC_PILOT_STRENGTH_MEASUREMENT_MESSAGE,
+  CP_RTC_POWER_MEASUREMENT_REPORT_MESSAGE,
+  CP_RTC_SEND_BURST_DTMF_MESSAGE,
+  CP_RTC_STATUS_MESSAGE,
+  CP_RTC_ORIGINATION_CONTINUATION_MESSAGE,
+  CP_RTC_HANDOFF_COMPLETION_MESSAGE,
+  CP_RTC_PARAMETERS_RESPONSE_MESSAGE,
+  CP_RTC_SERVICE_REQUEST_MESSAGE,
+  CP_RTC_SERVICE_RESPONSE_MESSAGE,
+  CP_RTC_SERVICE_CONNECT_COMPLETION_MESSAGE,
+  CP_RTC_SERVICE_OPTION_CONTROL_MESSAGE,
+  CP_RTC_STATUS_RESPONSE_MESSAGE,
+  CP_RTC_TMSI_ASSIGNMENT_COMPLETION_MESSAGE,
+  CP_RTC_SUPPLEMENTAL_CHANNEL_REQUEST_MESSAGE,
+  CP_RTC_CANDIDATE_FREQUENCY_SEARCH_RESPONSE_MESSAGE,
+  CP_RTC_CANDIDATE_FREQUENCY_SEARCH_REPORT_MESSAGE,
+  CP_RTC_PERIODIC_PILOT_STRENGTH_MEASUREMENT_MESSAGE,
+  CP_RTC_OUTER_LOOP_REPORT_MESSAGE,
+  CP_RTC_RESOURCE_REQUEST_MESSAGE = 23,
+  CP_RTC_EXTENDED_RELEASE_RESPONSE_MESSAGE = 24,
+  CP_RTC_EXTENDED_PILOT_STRENGTH_MEASUREMENT_MESSAGE=28,
+  CP_RTC_EXTENDED_HANDOFF_COMPLETION_MESSAGE = 29,
+  CP_RTC_RESOURCE_RELEASE_REQUEST_MESSAGE = 30,
+  CP_RTC_MAX_MESSAGES
+} RTCMessageType;
+
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+#define CP_SYSTIME_SIZE         5     /* # bytes to hold 36 bits  */
+#define ENG_SUPERFRAME_COUNT    4     /* 4 frames to a superframe */
+typedef kal_uint32 WbiosSystime;           /* holds system time - 32 bits */
+
+/****************************************************************************
+ * Sync Channel message structures
+ ****************************************************************************/
+
+/* define set of allowable page channel data rates */
+typedef enum
+{
+  PRAT_9600=0,
+  PRAT_4800
+} PageChRate;
+
+/* define set of allowable BCCH data rates */
+typedef enum
+{
+  SR1_BRAT_4800 = 0,
+  SR1_BRAT_9600 =1,
+  SR1_BRAT_19200 =2,
+  SR1_BRAT_REVERSED =3
+} BcchRate;
+
+/* define set of allowable SR1 TD Modes */
+typedef enum
+{
+  SR1_OTD = 0,
+  SR1_STS =1,
+  SR1_TD_NOT_USED
+} Sr1TdModes;
+
+/* define set of allowable SR1 TD Power Level */
+typedef enum
+{
+  SR1_9DB = 0,
+  SR1_6DB = 1,
+  SR1_3DB = 2,
+  SR1_SAME_DB =3,
+  SR1_TD_POWER_NOT_USED
+} Sr1TdPowerLevel;
+
+/* Position of the Primary SR3 Pilot */
+typedef enum
+{
+  SR3_LOWEST_FREQ = 0,
+  SR3_CENTER_FREQ = 1,
+  SR3_HIGHEST_FREQ = 2,
+  SR3_RESERVED = 3
+} Sr3PilotPosition;
+
+/* Pilot Transmission Power */
+typedef enum
+{
+  SR3_0_DB = 0,
+  SR3_1_DB = 1,
+  SR3_2_DB = 2,
+  SR3_3_DB = 3,
+  SR3_4_DB = 4,
+  SR3_5_DB = 5,
+  SR3_6_DB = 6,
+  SR3_7_DB = 7
+} Sr3PilotPower;
+
+/* Sync message contents */
+typedef struct
+{
+  kal_uint8              length;                     /* Message Length                           */
+  kal_uint8              msgType;                    /* Message Type                             */
+  kal_uint8              pRev;                       /* Protocol Revision Level                  */
+  kal_uint8              minPRev;                    /* Minimum protocol revision required by MS */
+  kal_uint16              sid;                        /* System ID                                */
+  kal_uint16              nid;                        /* Network ID                               */
+  kal_uint16              pilotPN;                    /* Pilot PN sequence offset index           */
+  kal_uint8              lcState[6];                 /* Long code state - 42 bits                */
+  kal_uint8              sysTime[CP_SYSTIME_SIZE];   /* System time - 36 bits            */
+  kal_uint8              lpSec;                      /* Number of leap seconds                   */
+  kal_uint8              ltmOff;                     /* Offset of local time from system time    */
+  kal_bool              daylt;                      /* Daylight savings time indicator          */
+  PageChRate        prat;                       /* Paging channel data rate                 */
+  kal_uint16              cdmaFreq;                   /* Paging channel                           */
+  kal_uint16              extCdmaFreq;                /* For RC2 or greater or supports QPCH      */
+  kal_bool              sr1BcchSupported;           /* Contains BCCH information */
+  kal_bool              sr1NonTdFreqIncl;
+  kal_uint16              sr1CdmaFreqNonTd;
+  BcchRate          sr1BratNonTd;
+  kal_uint8              sr1CratNonTd;
+  kal_uint8              sr1BcchCodeChanNonTd;
+  kal_bool              sr1TdIncl;
+  kal_uint16              sr1CdmaFreqTd;
+  BcchRate          sr1BratTd;
+  kal_uint8              sr1CratTd;
+  kal_uint8              sr1BcchCodeChanTd;
+  Sr1TdModes        sr1TdMode;
+  Sr1TdPowerLevel   sr1TdPowerLevel;
+  /* SR3 Parameters */
+  kal_bool              sr3Incl;
+  kal_bool              sr3CenterFreqIncl;
+  kal_uint16              sr3CenterFreq;
+  BcchRate          sr3Brat;
+  kal_uint8              sr3BcchCodeChan;
+  Sr3PilotPosition  sr3PrimaryPilot;
+  Sr3PilotPower     sr3PilotPower1;
+  Sr3PilotPower     sr3PilotPower2;
+/* BCY 11/14/00 */
+  kal_bool              dsIncl;
+  kal_uint32             dsBlob;
+} SyncMessage;
+
+/* Sync message structure for engine */
+typedef struct
+{
+  kal_uint16          startFrame;   /* first frame message was received in */
+  kal_uint16          endFrame;     /* last frame of message               */
+  SyncMessage   msg;           /* message contents                    */
+} SyncChannelMessage;
+
+
+
+/* Traffic channel message transmission control */
+typedef enum
+{
+  TX_OFF = 0,
+  TX_ON_IMMEDIATE,
+  TX_ON_CF_RULES
+} TXControl;
+
+
+#define TX_CONTINUOUS  0
+typedef enum
+{
+  RTC_PREAMBLE = 0,
+  RTC_SIGNALING_ONLY,
+  RTC_TRAFFIC
+} RTCTraffic;
+
+
+typedef enum
+{
+  CF_PERIODIC_SEARCH_OFF,
+  CF_PERIODIC_SEARCH_ENABLED,
+  CF_PERIODIC_SEARCH_DISABLED
+} CFPeriodicSearchCtl;
+
+
+typedef enum
+{
+  L2_INACTIVE,
+  L2_IDLE,
+  L2_FILL_MESSAGE,
+  L2_HOLD
+} L2_STATE;
+
+
+typedef enum
+{
+  L2_FTC_STOP_ST,
+  L2_FTC_INITIALIZATION_ST,
+  L2_FTC_IDLE_ST,
+  L2_FTC_HARD_HANDOFF_ST,
+  L2_FTC_CANDIDATE_FREQUENCY_ST,
+  L2_FTC_HARD_HANDOFF_W_RETURN_ON_FAILURE_ST,
+  L2_FTC_HARD_HANDOFF_INIT_ST,
+  L2_FTC_HARD_HANDOFF_W_RTN_ON_FAIL_INIT_ST,
+  L2_FTC_NST_TRFFIC_ST,
+  L2_FTC_MAX_STATES
+} L2FTCState;
+
+
+typedef enum
+{
+  L2_FTC_START_EV,
+  L2_FTC_STOP_EV,
+  L2_FTC_FRAME_EV,
+  L2_FTC_HARD_HANDOFF_EV,
+  L2_FTC_CANDIDATE_FREQUENCY_START_EV,
+  L2_FTC_CANDIDATE_FREQUENCY_END_EV,
+  /* SNR HHO 11/2/00 */
+  L2_FTC_HARD_HANDOFF_W_RETURN_ON_FAILURE_EV,
+  L2_FTC_HARD_HANDOFF_TIMER_EXPIRED_EV,
+  L2_FTC_MAX_EVENTS
+} L2FTCEvent;
+
+#define CP_MAX_MUX1_CATEGORY 14
+#define CP_MAX_MUX2_CATEGORY 26
+#define CP_MAX_MUX1_DCCH_CATEGORY 15
+#define CP_MAX_MUX2_DCCH_CATEGORY 27
+#define CP_MAX_SCH0_CATEGORY 7
+#define CP_MAX_BCCH_CATEGORY 5
+#define CP_MAX_FCCCH_CATEGORY 4
+
+#define F_PCH                 0
+#define F_BCCH                1
+#define F_FCCCH               2
+
+#if defined (MTK_CBP)
+/* define the MIN half frames number to calculate the vaild half frames percent */
+#define MIN_HALF_FRAMES       200
+#endif
+#define PCH_FRAME_LENGTH      24   /* units: Bytes */
+
+/* Multiplex Option 1 Category definitions */
+typedef enum
+{                   /*bps  Rate D&B B&B Primary Signalling Secondary */
+  MUX1_CAT1  = 1,   /*9600  1           Primary                      */
+  MUX1_CAT2  = 2,   /*9600  1/2 D&B     Primary Signalling           */
+  MUX1_CAT3  = 3,   /*9600  1/4 D&B     Primary Signalling           */
+  MUX1_CAT4  = 4,   /*9600  1/8 D&B     Primary Signalling           */
+  MUX1_CAT5  = 5,   /*9600  1       B&B         Signalling           */
+  MUX1_CAT6  = 6,   /*4800  1/2         Primary                      */
+  MUX1_CAT7  = 7,   /*2400  1/4         Primary                      */
+  MUX1_CAT8  = 8,   /*1200  1/8         Primary                      */
+  MUX1_CAT9  = 9,   /*9600  1   with bit errors                      */
+  MUX1_CAT10 = 10,  /*      Frame with insufficient frame quality    */
+  MUX1_CAT11 = 11,  /*9600  1/2 D&B     Primary            Secondary */
+  MUX1_CAT12 = 12,  /*9600  1/4 D&B     Primary            Secondary */
+  MUX1_CAT13 = 13,  /*9600  1/8 D&B     Primary            Secondary */
+  MUX1_CAT14 = 14,  /*9600  1       B&B                    Secondary */
+  MUX1_CAT15 = 15   /*9600  1  DCCH NULL Frame                       */
+} Mux1Cat;
+
+/* Multiplex Option 2 Category definitions */
+typedef enum
+{                   /*bps  Rate D&B B&B Primary Signalling Secondary */
+  MUX2_CAT1  = 1,   /*14400 1           Primary                      */
+  MUX2_CAT2  = 2,   /*14400 1/2 D&B     Primary Signalling           */
+  MUX2_CAT3  = 3,   /*14400 1/4 D&B     Primary Signalling           */
+  MUX2_CAT4  = 4,   /*14400 1/8 D&B     Primary Signalling           */
+  MUX2_CAT5  = 5,   /*14400 1       B&B         Signalling           */
+  MUX2_CAT6  = 6,   /*14400 1/2 D&B     Primary            Secondary */
+  MUX2_CAT7  = 7,   /*14400 1/4 D&B     Primary            Secondary */
+  MUX2_CAT8  = 8,   /*14400 1/8 D&B     Primary            Secondary */
+  MUX2_CAT9  = 9,   /*14400 1       B&B                    Secondary */
+  MUX2_CAT10 = 10,  /*14400 1/8 D&B     Primary Signalling Secondary */
+  MUX2_CAT11 = 11,  /*7200  1           Primary                      */
+  MUX2_CAT12 = 12,  /*7200  1/4 D&B     Primary Signalling           */
+  MUX2_CAT13 = 13,  /*7200  1/8 D&B     Primary Signalling           */
+  MUX2_CAT14 = 14,  /*7200  1       B&B         Signalling           */
+  MUX2_CAT15 = 15,  /*7200  1/4 D&B     Primary            Secondary */
+  MUX2_CAT16 = 16,  /*7200  1/8 D&B     Primary            Secondary */
+  MUX2_CAT17 = 17,  /*7200  1       B&B                    Secondary */
+  MUX2_CAT18 = 18,  /*7200  1/8 D&B     Primary Signalling Secondary */
+  MUX2_CAT19 = 19,  /*3600  1           Primary                      */
+  MUX2_CAT20 = 20,  /*3600  1/8 D&B     Primary Signalling           */
+  MUX2_CAT21 = 21,  /*3600  1       B&B         Signalling           */
+  MUX2_CAT22 = 22,  /*3600  1/8 D&B     Primary            Secondary */
+  MUX2_CAT23 = 23,  /*3600  1       B&B                    Secondary */
+  MUX2_CAT24 = 24,  /*1800  1           Primary                      */
+  MUX2_CAT25 = 25,  /*1800  1       B&B                    Secondary */
+  MUX2_CAT26 = 26,  /*      Frame with insufficient frame quality    */
+  MUX2_CAT27 = 27   /*1800  1       DCCH NULL Frame                  */
+} Mux2Cat;
+
+#ifdef MTK_PLT_ON_PC_UT
+#define MAX_TMSI_ZONE_LEN    16
+#endif
+
+/*****************************************************************************
+ * Data Structures
+ ****************************************************************************/
+
+/* Sync Channel Frame Indication data */
+typedef struct
+{
+  kal_uint16    frameNum;      /* count of received sync frames modulo 2048 */
+  kal_uint8    *data;         /* pointer to 32 bits of frame data */
+} SyncFrame;
+
+/* Page Channel Frame Indication data */
+typedef struct
+{
+  WbiosSystime  sysTime;     /* system time frame received in */
+  kal_uint16     size;             /* size of data in bits */
+  kal_uint8     *data;            /* pointer to frame data, including SCI bits */
+} PageFrame;
+
+/* FCCCH Frame Indication data */
+typedef struct
+{
+  WbiosSystime  sysTime;     /* system time frame received in */
+  kal_uint16     size;             /* size of data in bits */
+  kal_uint8     *data;            /* pointer to frame data, including SI bits */
+} FCCCHFrame;
+
+/* BCCH Frame Indication data */
+typedef struct
+{
+  WbiosSystime  sysTime;     /* system time frame received in */
+  kal_uint16     size;             /* size of data in bits */
+  kal_uint8     *data;            /* pointer to frame data, including SCI bits */
+} BCCHFrame;
+
+/* Page Channel Message structure provides the packed buffer and relevant */
+/* system information. */
+typedef struct
+{
+  WbiosSystime somTime;                 /* time the start of msg received  */
+  WbiosSystime sysTime;                 /* system time from last frame     */
+  kal_bool ackReceived;                     /* set KAL_TRUE if a VALID ACK for an  */
+                                        /* outstanding ack was received in */
+                                        /* this message, else set to KAL_FALSE */
+
+  kal_uint16 length;                          /* length of message               */
+  kal_uint8 type;                            /* message type                    */
+  kal_uint8 *msgBuffer;                      /* pointer to packed message buffer*/
+  kal_uint16 sduOffset;                     /* offset to first bit in L3 SDU   */
+  kal_uint8  PD_value;                      /* Protocol Discriminator*/
+  kal_uint8  ChanType;                      /* Channel Type: PCH, BCCH, FCCCH*/
+#if defined(MTK_CBP)
+  kal_bool  duplicateMsg;                   /* Indicate it is a duplicate message or not,
+                                         * KAL_TRUE: ignore the messge body
+                                         */
+#endif
+  kal_uint16  geRecordsInc;    /* if GEM, this will be updated with bitmap of records included */
+} PChMessage;
+
+
+/* BCY 08/28/00: !!! Need to change all PCHMessage to FcschMessage */
+typedef PChMessage FcschMessage;
+
+#ifdef MTK_PLT_ON_PC_UT
+/* LAC field of Page Channel Message, used for UT */
+typedef struct
+{
+  kal_uint8  msgType;                /* 8 bits */
+  kal_uint8  msgLen;                 /* 8 bits */
+  kal_uint8  ackSeq;                 /* 3 bits */
+  kal_uint8  msgSeq;                 /* 3 bits */
+  kal_bool  ackReq;
+  kal_bool  validAck;
+  kal_uint8  addrType;               /* 3 bits */
+  kal_uint8  addrLen;                /* 4 bits */
+  kal_uint32  imsi_s1;              /* 24 bits IMSI_S1 value               */
+  kal_uint16  imsi_s2;              /* 10 bits IMSI_S2 value               */
+  kal_uint32  esn;                  /* 32 bits ESN value                   */
+  kal_uint8  imsiClass;              /* 1 bits imsi class value             */
+  kal_uint8  imsiClassType;          /* 2 bits if class0, 1 bit if class1   */
+  kal_uint16  mcc;                  /* 10 bits for MCC value               */
+  kal_uint8  imsi_11_12;             /* 7 bits */
+  kal_uint8  imsiAddrNum;            /* 3 bits */
+  kal_uint32  tmsiCode;             /* 16 or 24 or 32 bits according to addrLen */
+  kal_uint8   bcastAddr[CP_BCAST_ADDRESS_MAX_SIZE]; /* length of array is addrLen */
+  /* following is only for paging record if any */
+  kal_bool  validPagingRec;
+  kal_uint8  addrClass;              /* 2 bits */
+  kal_uint8  addrSubclass;           /* 2 bits */
+  kal_uint8  tmsiZoneLen;            /* 4 bits */
+  kal_uint8  tmsiZone[MAX_TMSI_ZONE_LEN];
+  kal_uint8  burstType;             /* 6 bits */
+  kal_uint8  burstAddrLen;          /* 4 bits */
+  /* following is for CAM/ECAM/MEID ECAM */
+  kal_uint8  assignMode;            /* 3 bits */
+} PCHMessageLACField;
+#endif
+
+typedef enum
+{
+  MUX_OPTION_INVALID = 0,
+  MUX_OPTION1  = 1,
+  MUX_OPTION2,
+  MUX_OPTION3,
+  MUX_OPTION4,
+  MUX_OPTION5,
+  MUX_OPTION6,
+  MUX_OPTION7,
+  MUX_OPTION8,
+  MUX_OPTION9,
+  MUX_OPTION10,
+  MUX_OPTION11,
+  MUX_OPTION12,
+  MUX_OPTION13,
+  MUX_OPTION14,
+  MUX_OPTION15,
+  MUX_OPTION16,
+  MUX_OPTION704 = 0x704,
+  MUX_OPTION809 = 0x809,
+  MUX_OPTION80A = 0x80A,
+  MUX_OPTION811 = 0x811,
+  MUX_OPTION812 = 0x812,
+  MUX_OPTION821 = 0x821,
+  MUX_OPTION822 = 0x822,
+  MUX_OPTION905 = 0x905,
+  MUX_OPTION906 = 0x906,
+  MUX_OPTION909 = 0x909,
+  MUX_OPTION90A = 0x90A,
+  MUX_OPTION911 = 0x911,
+  MUX_OPTION912 = 0x912,
+  MUX_OPTION921 = 0x921,
+  MUX_OPTION922 = 0x922,
+  MUX_OPTIONF00 = 0xF00,	/* PDCH Mux Option */
+  MUX_OPTIONF20 = 0xF20
+
+} MultiplexOption;
+
+/* Traffic Channel Frame Indication data */
+typedef struct
+{
+  WbiosSystime     sysTime;    /*  system time frame received in              */
+  MultiplexOption  muxOption;  /*  multiplex option used in deriving frame    */
+  kal_uint8            category;   /*  frame category # - depends on mux_option   */
+  kal_uint8            quality;    /*  good or bad frame based on category & mux  */
+  kal_uint16           sigBits;
+  kal_uint8*           data;       /*  ptr to traffic data (cat. determines len)  */
+} TCFrame;
+
+typedef struct
+{
+  /* SNR ACK 1/30/01 */
+  kal_uint8         ackReq;
+  WbiosSystime  sysTime;
+  kal_uint8         length;
+  kal_uint8         sduEncryptMode;
+  kal_uint8         encSeq;
+  kal_uint8         extMsgLength;
+  kal_uint8         type;
+  kal_uint8         encryption;
+  kal_uint16        pduStartIndex;  /* Start of L3 PDU */
+  kal_uint16        geRecordsInc;    /* if GEM, this will be updated with bitmap of records included */
+  kal_uint8*        buffer;         /* pointer to packed message buffer */
+} FTCMessage;
+
+#ifdef MTK_PLT_ON_PC_UT
+typedef struct
+{
+  kal_uint8 msgLen;       /* 8 bits */
+  kal_uint8 msgType;      /* 8 bits */
+  kal_uint8 ackSeq;       /* 3 bits */
+  kal_uint8 msgSeq;       /* 3 bits */
+  kal_uint8 ackReq;       /* 1 bit */
+  kal_uint8 encryption;   /* 2 bits */
+} FTCMessageLACField;
+#endif
+
+
+typedef struct
+{
+  kal_bool  resetFpc;
+  kal_uint8 pwrRepThresh;
+  kal_uint8 pwrRepFrames;
+  kal_bool   pwrThreshEnable;
+  kal_bool   pwrPeriodEnable;
+  kal_uint8 pwrRepDelay;
+} PCNPMData;
+
+#endif  /* _PSWAIRMSG_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswapi.h b/mcu/interface/protocol/as_c2k/1xrtt/pswapi.h
new file mode 100644
index 0000000..38c02ce
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswapi.h
@@ -0,0 +1,5720 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1998-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWAPI_H_
+#define _PSWAPI_H_
+/*****************************************************************************
+*
+* FILE NAME   : pswapi.h
+*
+* DESCRIPTION : Protocol stack interface
+*
+*     This include file provides system wide global type declarations and
+*     constants
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+#include "pswnam.h"
+#include "pswcustom.h"
+#include "pswsmstune.h"
+#include "lmdapi.h"
+#include "syscommon.h"
+#include "c2k_defs.h"
+#include "cssapi.h"
+#ifdef MTK_DEV_C2K_IRAT
+#include "iratapi.h"
+#endif
+#include "module_msg_range.h"
+
+#ifdef MTK_PLT_ON_PC_UT
+#include "sbp_public_utility.h"
+#endif
+#include "psw_msgid.h"
+#include "hlpapi.h"
+#include "pswairmsg.h"
+#include "dspmapi.h"
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+
+#define SYS_CP_MAX_AFLT_LIST_PILOTS_MEAS         16 /* max number of pilot pn's in neighbor list measured to PSW */
+
+#define PSW_MAILBOX_CMD      EXE_MAILBOX_1_ID
+#define PSW_MAILBOX2_CMD     EXE_MAILBOX_2_ID
+
+#define PSW_SYNC_DATA_SIZE   4
+
+#define PSW_MAX_SMS_SIZE     256
+#define PRM_MAX_SIZE         256
+
+#define PSW_NUM_MUX1_COUNTER_INDEX 14
+#define PSW_NUM_MUX2_COUNTER_INDEX 26
+
+/* Data service page acceptance bit map. */
+#define PSW_ASYNC_DATA_PAGE_ACCEPT   1
+#define PSW_FAX_PAGE_ACCEPT          2
+#define PSW_ASYNCDATA_AND_FAX_PAGE_ACCEPT	3
+
+/* Updated NAM Data Mask Bits Defined (whatChangedInNam) */
+#define SLOT_CYCLE_INDEX_UPDATED     0x0001
+#define SCM_UPDATED                  0x0002
+#define MOB_TERM_HOME_UPDATED        0x0004
+#define MOB_TERM_FOR_SID_UPDATED     0x0008
+#define MOB_TERM_FOR_NID_UPDATED     0x0010
+#define AKEY_UPDATED                 0x0040
+#define SYSTEMSELECT_UPDATED         0x0080
+
+#define PSW_AKEY_UINT64
+
+/* IMSI Character String - Input sizes */
+#define MAX_IMSI_S1_DIGITS 7
+#define MAX_IMSI_S2_DIGITS 3
+#define MAX_IMSI_S_DIGITS 10
+#define MAX_MNC_DIGITS 2
+#define MAX_MCC_DIGITS 3
+#define FIELD_TEST_DATA
+
+#define PSW_GPS7560_DATA_SIZE_MAX   760
+
+/*MS-Based*/
+#define NMEA_SV 16
+#define MAX_SVINVIEW 16
+
+  /* A21 Subscription Info record */
+#define PSW_A21_MS_SUBS_INFO_ELEMENT_ID                0x0B
+#define PSW_A21_MS_SUBS_INFO_ELEMENT_ID_WIDTH             8
+#define PSW_A21_MS_SUBS_INFO_ELEMENT_LEN_WIDTH            8
+#define PSW_A21_MS_SUBS_INFO_BC_REC_ID                 0x00
+#define PSW_A21_MS_SUBS_INFO_BC_REC_ID_WIDTH              8
+#define PSW_A21_MS_SUBS_INFO_BC_REC_LEN_WIDTH             8
+#define PSW_A21_MS_SUBS_INFO_BC_ALL_INCLUDE_WIDTH         1
+#define PSW_A21_MS_SUBS_INFO_BC_CURRENT_SUBCLASS_WIDTH    7
+#define PSW_A21_MS_SUBS_INFO_BC_BANDCLASS_WIDTH           8
+#define PSW_A21_MS_SUBS_INFO_BC_RESERVED1_WIDTH           3
+#define PSW_A21_MS_SUBS_INFO_BC_SUBCLASS_LEN_WIDTH        4
+#define PSW_A21_MS_SUBS_INFO_BC_SUBCLASS_WIDTH            8
+#define PSW_A21_MS_SUBS_INFO_HEADER_LEN          ((PSW_A21_MS_SUBS_INFO_ELEMENT_ID_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_ELEMENT_LEN_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_REC_ID_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_REC_LEN_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_ALL_INCLUDE_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_CURRENT_SUBCLASS_WIDTH) / 8)
+
+#define PSW_A21_MS_SUBS_INFO_BANDCLASS_LEN      ((PSW_A21_MS_SUBS_INFO_BC_BANDCLASS_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_ALL_INCLUDE_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_RESERVED1_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_SUBCLASS_LEN_WIDTH \
+                                                  + PSW_A21_MS_SUBS_INFO_BC_SUBCLASS_WIDTH * 4) / 8)
+
+#define PSW_MAX_A21_MS_SUBS_INFO_LEN    (PSW_A21_MS_SUBS_INFO_HEADER_LEN + PSW_A21_MS_SUBS_INFO_BANDCLASS_LEN * NAM_BANDS_SUPPORTED)
+#define MAX_SMS_ACK_PDU_LEN								255
+#define PSW_SMS_CBS_CHA_MAX                             4
+
+#define CP_MAX_NUM_FOR_SCH      2
+#define CP_MAX_NUM_REV_SCH      2
+#define CP_MAX_ROUNDS_FWD       7
+#define CP_MAX_ROUNDS_REV       7
+/****************************************************************************
+ * Other Global declarations.
+ ***************************************************************************/
+extern kal_bool VoicePrivacy;
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+typedef enum
+{
+    PE_ENG_ERR_BAD_PREF_BAND      =1,   /* pref band mismatch with op_mode */
+    PE_ENG_ERR_BAD_PREF_MODE,           /* pref mode mismatch with op_mode */
+    PE_ENG_ERR_BAD_CUSTOM_OPMODE,       /* bad opmode setting in custom.h  */
+    PE_ENG_ERR_INCOMPATIBLE_BAND_MODE,  /* incompatible band/mode combo    */
+    PE_ENG_ERR_TUNE_RADIO,              /* Can't tune Radio                */
+    PE_ENG_ERR_POWER_AMP,               /* Can't control Power Amplifier   */
+    PE_ENG_ERR_OOSA_BAD_VALUE,          /* Bad param value for OOSA select */
+    PE_ENG_ERR_IHO_BAD_VALUE,           /* Bad parm for Idle HandOff       */
+
+      /* Call Processing Request types */
+    PE_RQ_ENABLE             =10,  /* (+ NAM Parameter Data)           */
+    PE_RQ_DISABLE,                 /* (no data)                        */
+    PE_RQ_ORIGINATE,               /* (+ digits + service option)      */
+    PE_RQ_ANSWER,                  /* (no data)                        */
+    PE_RQ_FLASH,                   /* (+ digits)                       */
+    PE_RQ_TERMINATE,               /* (no data)                        */
+    PE_RQ_POWERDOWN,               /* (no data)                        */
+    PE_RQ_BURST_DTMF,              /* (+ digits)                       */
+    PE_RQ_CONT_DTMF_ON,            /* (+ digit)                        */
+    PE_RQ_CONT_DTMF_OFF,           /* (no data)                        */
+    PE_RQ_VP_ON,                   /* (no data)                        */
+    PE_RQ_VP_OFF,                  /* (no data)                        */
+    PE_RQ_DATA_BURST,              /* (+ data burst data)              */
+    PE_RQ_DATA_BURST_UNACK,        /* (+ data burst data)              */
+    PE_RQ_DATA_BURST_REJ,          /* (no data)                        */
+    PE_RQ_WIDE_ANALOG,             /* (no data)                        */
+
+    PE_RQ_AUTO_ANSWER        =27,  /* (no data)                        */
+    PE_RQ_PAGE_RESPONSE,           /* (no data)                        */
+    PE_RQ_TERM_SVC_INACT,          /* (no data)                        */
+    PE_RQ_AFLT_SEARCH,             /* (+ aflt info)                    */
+    PE_RQ_LBS_1X_ACQ,
+    PE_RQ_NST_POWERUP,
+    PE_RQ_NST_EXIT,
+    PE_RQ_FULL_SYSTIME_GET,
+
+      /* Status indication for different WBIOS Reports */
+    PE_ENG_IND_ANTENNA_REQ_GRANTED    =57,
+    PE_ENG_IND_ANTENNA_REQ_DENIED,
+    PE_ENG_IND_ANTENNA_RELEASED,
+    PE_ENG_IND_PILOT_ACQUIRE,
+    PE_ENG_IND_NO_PILOT,
+    PE_ENG_IND_SYNC_ACQUIRE_FAIL,
+    PE_ENG_IND_SYNC_TO_SYS_TIME,
+    PE_ENG_IND_SYNC_TO_SYS_TIME_FAIL,
+    PE_ENG_IND_PAGE_MONITOR,
+    PE_ENG_IND_PAGE_MONITOR_FAIL,
+    PE_ENG_IND_SEND_ACCESS_MSG_FAIL,
+    PE_ENG_IND_SEND_TC_MSG,
+    PE_ENG_IND_SEND_TC_MSG_FAIL,
+    PE_ENG_IND_TC_CONFIG,
+    PE_ENG_IND_LONG_CODE_CHANGED,
+    PE_ENG_IND_RADIO_TUNED,
+    PE_ENG_IND_RADIO_NOT_TUNED,
+    PE_ENG_IND_PILOT_LOST,
+    PE_ENG_IND_PUF_PROBE_SENT,
+    PE_ENG_IND_PUF_PROBE_SENT_MAX_PWR,
+    PE_ENG_IND_PUF_PROBE_NOT_SENT,
+    PE_ENG_IND_WAKEUP,
+    PE_ENG_IND_PILOT_SET,
+    PE_ENG_IND_IHO_COMPLETE,
+    PE_ENG_IND_OOSA_WAKEUP,
+    PE_ENG_IND_TC_TO_AVC_HO_START,
+    PE_ENG_IND_BCCH_MONITOR,
+    PE_ENG_IND_BCCH_MONITOR_FAIL,
+    PE_ENG_IND_FCCCH_MONITOR,
+    PE_ENG_IND_FCCCH_MONITOR_FAIL,
+    PE_ENG_IND_HO_FAIL,
+    PE_ENG_IND_FORCE_BAND_MODE,
+    PE_ENG_SYS_RESCAN_TIME,
+    PE_ENG_IND_DISABLE_E911MODE ,
+    PE_ENG_IND_RSCH_STARTED,
+
+    PE_ENG_IND_SYNC_CSS_FAIL          =92,
+    PE_ENG_IND_SYNC_CSS_PASS,
+    PE_ENG_IND_FSCH_STARTED,
+    PE_ENG_IND_FSCH_TERMINATED,
+    PE_ENG_SYS_REDIRECTION_END_TIME ,
+    PE_ENG_IND_FORCE_ANALOG_MODE,
+    PE_ENG_IND_IDLE_HANDOFF_ACQUIRE,     /* and from CPB6.0  Hans Christiansen 080404 */
+
+    /* Engine event notification request types for use in CALLBACK */
+    PE_ENG_NULL_EVENT        =100,  /* event complete indicator        */
+    PE_ENG_IND_TIMEOUT,             /* CP timer expiry indicator       */
+    PE_ENG_SYNC_MESSAGE,            /* SYNC message received ind.      */
+    PE_ENG_PAGE_MESSAGE,            /* PCH message received ind.       */
+    PE_ENG_FTC_MESSAGE,             /* FTC message received ind.       */
+    PE_ENG_FCSCH_LOST,              /* forword common control Ch lost ind. */
+    PE_ENG_IDLE_HANDOFF,            /* Idle handoff request ind.       */
+    PE_ENG_REGISTRATION_REQ,        /* Registration access request     */
+    PE_ENG_ACCESS_FAIL,             /* Access attempt failed           */
+    PE_ENG_FTC_N5M_FRAMES,          /* Rcvd N5m consecutive good frames */
+    PE_ENG_ACCESS_PSIST_FAIL,       /* PSIST calculation = 0           */
+    PE_ENG_FTC_LOST,                /* FTC fade timer timed out        */
+    PE_ENG_IND_ACK_RECEIVED,        /* Ack rcvd for a transmitted msg  */
+    PE_ENG_STRONGEST_PILOT_REPORT,  /* Strongest pilot report          */
+    PE_ENG_ACCESS_HO_CANDIDATE,     /* Access Entry HO candidate found */
+    PE_ENG_ACCESS_HO_NO_CANDIDATE,  /* no Access Entry HO candidate    */
+    PE_ENG_ACCESS_HO_LIST,          /* access ho list pilot report     */
+    PE_ENG_ACCESS_PROBE_HO_FAIL,    /* access probe ho fail ind.       */
+    PE_ENG_ACCESS_HO_DENIED,        /* access ho attempt not allowed   */
+    PE_ENG_READ_ACCESS_OVERHEAD,    /* selected overhead read after ho */
+    PE_ENG_ACCESS_PROBE_FAIL,       /* access probe too big            */
+    PE_ENG_IND_TC_ACK_FAILURE,      /* TC transmission ACK failure     */
+    PE_ENG_IND_ACCESS_PILOT_MSMT,   /* pilot msmt report in access     */
+    PE_ENG_START_SYS_RESELECT,      /* Start Sys Reselect Procedures   */
+
+    PE_ENG_ACCESS_MODE_SEARCH_FAIL =125, /* access mode determination fail */
+    PE_ENG_BCCH_MESSAGE,                /* FCCCH message received ind.     */
+    PE_ENG_FCCCH_MESSAGE,               /* BCCH message received ind.      */
+    PE_ENG_ACCESS_HANDOFF,              /* Access handoff request ind.     */
+
+    PE_ENG_IND_QPCH_PI_STATUS     =129, /* PI Status                       */
+    PE_ENG_IND_SOFT_HO_COMPLETE,
+    PE_ENG_IND_HARD_HO_COMPLETE,
+    PE_ENG_IND_E911_ACCESS_FAIL   =133,    /* E911 Access Fail                */
+    PE_ENG_IND_AFLT_RESULT_RCVD,    /* AFLT Srch Rslt Rcvd from L1d    */
+    PE_ENG_IND_OOSA_REQ,
+    PE_ENG_IND_MODEM_FAILURE,
+    PE_ENG_IND_MODEM_READY,
+    PE_ENG_IND_IRAT_RESET_1XCDMA,
+
+    PE_ENG_IND_CSS_OTASP_ACQ_REQ     =150,
+    PE_ENG_IND_CSS_SELECT_RSP,
+    PE_ENG_IND_CSS_VALIDATE_RSP,
+    PE_ENG_IND_CSS_SYS_ACQ_REQ,
+
+    PE_ENG_IND_FREEZE                =154,
+    PE_ENG_IND_THAW,
+    PE_ENG_IND_RESYNC,
+    PE_ENG_IND_RESYNC_DENIED,
+
+#ifdef MTK_DEV_C2K_IRAT
+    PE_ENG_IND_RSVAS_VIRTUAL_SUSPEND =160,/* inform to stop inter-freq meas if any*/
+    PE_ENG_IND_RSVAS_RESUME,              /* inform to start inter-freq meas if any */
+    PE_ENG_IND_RSVAS_OCCUPY_IND,          /* inform to start access procedure */
+    PE_ENG_IND_EXIT_PS_REQ,               /* inform to exit 1x PS during C2L MPSR procedure */
+#endif
+
+
+    PE_ENG_AMPS_START_SCAN        =200, /* Start AMPS channel scanner      */
+    PE_ENG_AMPS_SCAN_COMPLETE     =201, /* Channel scan complete           */
+    PE_ENG_AMPS_OMT               =203, /* OMT received                    */
+    PE_ENG_AMPS_FILLER            =204, /* Control Filler received         */
+    PE_ENG_AMPS_MSCM              =205, /* MSCM received                   */
+    PE_ENG_AMPS_SMS_CNF           =206, /* MSCM received                   */
+    PE_ENG_AMPS_AWI_SMS_CNF       =207, /* MSCM received                   */
+    PE_ENG_NO_IDLE_HANDOFF        =210, /* No Idle handoff request ind     */
+    PE_ENG_IND_EPRL_ESPM_TIMEOUT  =213,
+    PE_ENG_IND_MANUAL_AVOID_SYS   =214,
+    PE_ENG_IND_L1D_DEACTIVE_CNF   =215,
+    PE_ENG_UIM_AUTHR              =230, /*UIM AUTH Result*/
+    PE_ENG_UIM_RANDBS             =240,
+    PE_ENG_UIM_SSD_CONFIRM        =241,
+#ifdef MTK_CBP_SYNC_OPTIMIZE
+    PE_ENG_IND_SIB8_TIMING_CNF    =250,
+    PE_ENG_IND_NO_SIB8_TIMING     =251
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+} PeRunEngineEvent;
+
+extern const RetrievableAndSettableParametersT parameterIDTable[];
+
+/* Protocol Revision definitions */
+#define P_REV_1    1     /* 95    (BC0), JSTD008(BC1)      */
+#define P_REV_2    2     /* 95A   (BC0, BC1)               */
+#define P_REV_3    3     /* TSB74 (BC0, BC1), T53 V1 (BC3) */
+#define P_REV_4    4     /* 95B   (BC0, BC1), T53 V2 (BC3) */
+#define P_REV_5    5     /* 95B   (BC0, BC1), T53 V2 (BC3) */
+#define P_REV_6    6     /* 2000 REL 0 (no BCCH nor FCCCH support) */
+#define P_REV_7    7     /* 2000 REL A (with BCCH and FCCCH support) */
+#define P_REV_8    8     /* 2000 REL B */
+#define P_REV_9    9     /* 2000 REL C */
+#define P_REV_10   10    /* IS-2000-C with encryption      */
+
+/* Call Processing State Machine States */
+typedef enum
+{
+  CP_DISABLED,            /* CP Disabled                              */
+  CP_SYS_DETERMINATION,   /* System Determination (6.6.1.1)           */
+  CP_PILOT_ACQUISITION,   /* Pilot Channel Acquisition (6.6.1.2)      */
+  CP_SYNC_ACQUISITION,    /* Sync Channel Acquisition (6.6.1.3)       */
+  CP_TIMING_CHANGE,       /* Timing Change (6.6.1.4)                  */
+  CP_IDLE,                /* Idle (6.6.2)                             */
+  CP_UPDATE_OHD_INFO,     /* Update Overhead Information (6.6.3.2)    */
+  CP_PAGE_RESPONSE,       /* Page Response (6.6.3.3)                  */
+  CP_ORD_MSG_RESP,        /* Order/Message Response (6.6.3.4)         */
+  CP_ORIGINATION,         /* Origination Attempt (6.6.3.5)            */
+  CP_REGISTRATION,        /* Registration Attempt (6.6.3.6)           */
+  CP_MSG_TRANSMISSION,    /* Message Transmission (6.6.3.7)           */
+  CP_TC_INIT,             /* Traffic Channel Initialization (6.6.4.2) */
+  CP_TC_WAIT_ORDER,       /* TC Waiting for Order (6.6.4.3.1)         */
+  CP_TC_WAIT_ANSWER,      /* TC Waiting for MS Answer (6.6.4.3.2)     */
+  CP_TC_CONVERSATION,     /* TC Conversation (6.6.4.4)                */
+  CP_TC_RELEASE,          /* TC Release (6.6.4.5)                     */
+  CP_NST,                 /* Non-Signaling Test Mode                  */
+  CP_FROZEN,              /*Temp put here*/
+  CP_TC_FROZEN,           /* TC Frozen                             */
+
+  CP_NUM_STATES
+} CPState;
+
+typedef enum
+{
+   /* Call Processing Event types reported in wbiosReportCPEvent */
+   EV_DISCONNECT           = 1,   /* CP leaves Conversation ST      */
+   EV_PAGE_RECEIVED        = 2,   /* Page received on Control Ch    */
+   EV_STOPALERT            = 3,   /* CP leaves Waiting For Answer ST*/
+   EV_ABBR_ALERT           = 4,   /* Abbreviated alert              */
+   EV_NOSVC                = 5,   /* No Service                     */
+   EV_CDMA_INSVC           = 6,   /* In Service (Ready)             */
+   EV_CPENABLED            = 7,   /* Call Processing Enabled        */
+   EV_CPDISABLED           = 8,   /* Call Processing Disabled       */
+   EV_PDOWNACK             = 9,   /* Power-Down Acknowledge         */
+   EV_CONNANALOG           = 10,  /* CP enters Conv. ST on voice ch */
+   EV_CONNDIGITAL          = 11,  /* CP enters Conv. ST on TC ch    */
+   EV_TC_ASSIGNED          = 12,  /* Traffic Channel assigned       */
+   EV_ORIG_FAIL            = 13,  /* Orig. failed - Access failed   */
+   EV_NDSS_ORIG_CANCEL     = 14,  /* Orig. attempt cancelled        */
+   EV_INTERCEPT            = 15,  /* Orig. failed - Intercept       */
+   EV_REORDER              = 16,  /* Orig. failed - Reorder         */
+   EV_CC_RELEASE           = 17,  /* Control Channel - Release      */
+   EV_CC_RELEASE_SO_REJ    = 18, /* CC Release - Scv Option reject */
+   EV_DIALING_COMPLETE     = 19,  /* Dialing digits all sent        */
+   EV_DIALING_CONTINUE     = 20,  /* Dialed digits continue on TC   */
+   EV_MAINTENANCE          = 21,  /* Maintenance order received     */
+   EV_VP_ON                = 22,  /* Voice privacy is enabled       */
+   EV_VP_OFF               = 23,  /* Voice privacy is disabled      */
+   EV_PSIST_FAIL           = 24,  /* PSIST calculation failed       */
+   EV_TC_RELEASE_MS        = 25,  /* TC released normally by MS     */
+   EV_TC_RELEASE_PDOWN     = 26,  /* TC released by MS Power Down   */
+   EV_TC_RELEASE_DISABLE   = 27,  /* TC released by MS Disable      */
+   EV_TC_RELEASE_BS        = 28,  /* TC released normally by BS     */
+   EV_TC_RELEASE_SO_REJECT = 29,  /* TC released by BS Serv Opt Rej */
+   EV_TC_RELEASE_TIMEOUT   = 30,  /* TC released - Timeout          */
+   EV_TC_RELEASE_ACK_FAIL  = 31,  /* TC released - Ack failure      */
+   EV_TC_RELEASE_FADE      = 32,  /* TC released - Fade             */
+   EV_TC_RELEASE_LOCK      = 33,  /* TC released - due to bs lock   */
+   EV_PAGE_FAIL            = 34,  /* Page Response Fail             */
+   EV_RETRY_TIMER_ACTIVE   = 35,  /* Retry Delay Timer is active    */
+   EV_RETRY_TIMER_INACTIVE = 36,  /* Retry Delay Timer is inactive  */
+   EV_AMPS_INSVC           = 37,  /* In AMPS Service (Ready)        */
+   EV_PACKET_ACTIVE        = 38,  /* In Active Packet State         */
+   EV_PACKET_RELEASED      = 39,  /* In Inactive Packet State       */
+   EV_PACKET_DORMANT       = 40,  /* In Dormant Packet State        */
+   EV_ORIG_REJECTED        = 41,  /* Origination Rejected           */
+   EV_ORIG_ACCT  = 42,
+
+   EV_ORIG_USER_CANCEL     = 60,
+   EV_ORIG_ACCESS_FAIL     = 61,
+   EV_ORIG_NO_SVC_FAIL     = 62,
+   EV_ORIG_RETRY_ORDER     = 63,
+   EV_SR_ENABLED           = 64,
+   EV_SR_DISABLED          = 65,
+   EV_ORIG_REQ_RECEIVED    = 66,
+   EV_ORIG_REJECTED_SO_NOT_SUPPORTED = 67, /*VAL has requested an SO not supported by the device*/
+   EV_ORIG_BLOCKED_BY_IRAT = 68, /* CDMA not selected by RATC as pri CS service */
+   EV_SMS_CANCEL_BY_PWRDOWN = 69, /* SMS cancel by CP Power Down */
+    /* BEGIN AMPS ONLY */
+   EV_FLASHFAIL            = 80,  /* Flash request failed           */
+   EV_ANALOG_PAGE_RECEIVED = 81,  /* Page received on Control Ch    */
+   EV_AMPS_IDLE            = 82,  /* AMPS service is acquired.      */
+    /* END AMPS ONLY */
+
+   EV_ABBR_INTERCEPT       = 83,
+   EV_ABBR_REORDER         = 84,
+   EV_CONN_COMPLETE        = 85,
+   EV_ENTER_OOSA           = 86,
+   EV_FNM_RELEASE          = 87,  /* Feature Notification Msg RELEASE=1, ORDM ONLY */
+   EV_DBM_MSID_UPDATED     = 88,
+   EV_BUSY_ORIG_FAIL       = 89,
+   EV_LOCKED_ORIG_FAIL     = 90,
+   EV_ORIG_FAIL_SO_REDIRECT = 91,
+   EV_TC_RELEASE_MT_CALL   = 92,
+   EV_REG_SUCCESS          = 93, /*MS register with network successfully*/
+#ifdef MTK_DEV_C2K_IRAT
+   EV_RSVAS_SUSPEND_COMPLETE = 94,
+#endif
+#if defined (__MCIF_SUPPORT__) && defined (__CO_ANTENNA__)
+   EV_1X_SLOTTED = 95,
+   EV_1X_NOT_SLOTTED = 96,
+#endif
+   EV_ACCESS_MAX_PROBE_FAIL       = 97,
+
+} CallProcessingEventT;
+
+typedef enum
+{
+   CP_ACCESS_REASON_PAGE_RSP = 1,
+   CP_ACCESS_REASON_REGISTRATION,
+   CP_ACCESS_REASON_ORIGINATION,
+   CP_ACCESS_REASON_MSG_RESPONSE,
+   CP_ACCESS_REASON_DATABURST
+} AccessReasonT;
+
+typedef enum
+{
+   PSW_PILOT_ACQUIRE,
+   PSW_NO_PILOT,
+   PSW_SYNC_ACQUIRE_FAIL,
+   PSW_SYNC_TO_SYS_TIME,
+   PSW_SYNC_TO_SYS_TIME_FAIL,
+   PSW_PAGE_MONITOR,
+   PSW_PAGE_MONITOR_FAIL,
+   PSW_BCCH_MONITOR,              /* BSR 3/12/04 */
+   PSW_BCCH_MONITOR_FAIL,         /* BSR 3/12/04 */
+   PSW_FCCCH_MONITOR,             /* BSR 3/16/04 */
+   PSW_FCCCH_MONITOR_FAIL,        /* BSR 3/16/04 */
+   PSW_SEND_ACCESS_MSG_FAIL,
+   PSW_SEND_TC_MSG,
+   PSW_SEND_TC_MSG_FAIL,
+   PSW_TC_CONFIG,
+   PSW_LONG_CODE_CHANGED,
+   PSW_RADIO_TUNED,
+   PSW_RADIO_NOT_TUNED,
+   PSW_PILOT_LOST,
+   PSW_PUF_PROBE_SENT,
+   PSW_PUF_PROBE_SENT_MAX_PWR,
+   PSW_PUF_PROBE_NOT_SENT,
+   PSW_IND_WAKEUP,
+   PSW_IND_PILOT_SET,
+   PSW_SOFT_HO_COMPLETE,
+   PSW_OOSA_WAKEUP,
+   PSW_AMPS_HO_COMPLETE,
+   PSW_RSCH_STARTED,
+   PSW_FSCH_STARTED,
+   PSW_FSCH_TERMINATED,
+   PSW_RSR_UPDATED,
+   PSW_HARD_HO_COMPLETE,
+   PSW_IND_FREEZE,
+   PSW_IND_THAW,
+   PSW_IND_RESYNC,
+   PSW_IND_RESYNC_DENIED,
+   PSW_ANTENNA_REQ_GRANTED,
+   PSW_ANTENNA_REQ_DENIED,
+   PSW_ANTENNA_RELEASED,
+   PSW_MODEM_FAILURE,
+   PSW_MODEM_READY,
+   PSW_CLK_CAL_START,
+   PSW_CLK_CAL_DONE,
+   PSW_NUM_CMD_STATUS
+} PswCmdStatusT;
+
+typedef enum
+{
+   PSW_FRAME_CATAGORY_RS1_9600_FULL_PRI = 1,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_HALF_PRI_SIG = 2,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_QUARTER_PRI_SIG = 3,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_EIGHTH_PRI_SIG = 4,
+   PSW_FRAME_CATAGORY_RS1_9600_BLANK_BURST_SIG = 5,
+   PSW_FRAME_CATAGORY_RS1_4800_FULL_PRI = 6,
+   PSW_FRAME_CATAGORY_RS1_2400_FULL_PRI = 7,
+   PSW_FRAME_CATAGORY_RS1_1200_FULL_PRI = 8,
+   PSW_FRAME_CATAGORY_RS1_9600_FULL_PRI_BIT_ERRORS = 9,
+   PSW_FRAME_CATAGORY_RS1_INSUFFICIENT_FRAME_QUALITY = 10,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_HALF_PRI_SEC = 11,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_QUARTER_PRI_SEC = 12,
+   PSW_FRAME_CATAGORY_RS1_9600_DIM_BURST_EIGHTH_PRI_SEC = 13,
+   PSW_FRAME_CATAGORY_RS1_9600_BLANK_BURST_SEC = 14,
+   PSW_FRAME_CATAGORY_RS1_9600_DCCH_NULL_FRAME = 15,
+   PSW_FRAME_CATAGORY_RS2_14400_FULL_PRI = 1,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_HALF_PRI_SIG = 2,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_QUARTER_PRI_SIG = 3,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_EIGHTH_PRI_SIG = 4,
+   PSW_FRAME_CATAGORY_RS2_14400_BLANK_BURST_SIG = 5,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_HALF_PRI_SEC = 6,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_QUARTER_PRI_SEC = 7,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_EIGHTH_PRI_SEC = 8,
+   PSW_FRAME_CATAGORY_RS2_14400_BLANK_BURST_SEC = 9,
+   PSW_FRAME_CATAGORY_RS2_14400_DIM_BURST_EIGHTH_PRI_SEC_SIG = 10,
+   PSW_FRAME_CATAGORY_RS2_7200_FULL_PRI = 11,
+   PSW_FRAME_CATAGORY_RS2_7200_DIM_BURST_QUARTER_PRI_SIG = 12,
+   PSW_FRAME_CATAGORY_RS2_7200_DIM_BURST_EIGHTH_PRI_SIG = 13,
+   PSW_FRAME_CATAGORY_RS2_7200_BLANK_BURST_SIG = 14,
+   PSW_FRAME_CATAGORY_RS2_7200_DIM_BURST_QUARTER_PRI_SEC = 15,
+   PSW_FRAME_CATAGORY_RS2_7200_DIM_BURST_EIGHTH_PRI_SEC = 16,
+   PSW_FRAME_CATAGORY_RS2_7200_BLANK_BURST_SEC = 17,
+   PSW_FRAME_CATAGORY_RS2_7200_DIM_BURST_EIGHTH_PRI_SEC_SIG = 18,
+   PSW_FRAME_CATAGORY_RS2_3600_FULL_PRI = 19,
+   PSW_FRAME_CATAGORY_RS2_3600_DIM_BURST_EIGHTH_PRI_SIG = 20,
+   PSW_FRAME_CATAGORY_RS2_3600_BLANK_BURST_SIG = 21,
+   PSW_FRAME_CATAGORY_RS2_3600_DIM_BURST_EIGHTH_PRI_SEC = 22,
+   PSW_FRAME_CATAGORY_RS2_3600_BLANK_BURST_SEC = 23,
+   PSW_FRAME_CATAGORY_RS2_1800_FULL_PRI = 24,
+   PSW_FRAME_CATAGORY_RS2_1800_BLANK_BURST_SEC = 25,
+   PSW_FRAME_CATAGORY_RS2_INSUFFICIENT_FRAME_QUALITY = 26,
+   PSW_FRAME_CATAGORY_RS2_14400_DCCH_NULL_FRAME = 27,
+
+   PSW_FRAME_CATAGORY_RS_LAST = PSW_FRAME_CATAGORY_RS2_14400_DCCH_NULL_FRAME
+
+} PswFrameCatagoryT;
+
+
+/* Define redirection record types - Table 7.7.2.3.2.16-1 */
+typedef enum
+{
+  CP_SRD_REDIRECTION_NDSS_OFF,
+  CP_SRD_REDIRECTION_ANALOG,
+  CP_SRD_REDIRECTION_CDMA,
+  CP_SRD_REDIRECTION_TACS,
+  CP_SRD_REDIRECTION_JTACS
+} ServRedirRecord;
+
+typedef enum
+{
+   CP_IDLE_START,
+   CP_IDLE_WAIT_FOR_FCSCH,
+   CP_IDLE_MONITOR,
+   CP_IDLE_HANDOFF,
+   CP_IDLE_CHANNEL_CHANGE,
+   CP_IDLE_ACCESS_ENTRY_HO,
+   CP_IDLE_WAKEUP_FOR_ACCESS,
+   CP_IDLE_POWERDOWN,
+   CP_IDLE_SLOTTED_HO_WAKEUP,
+   CP_IDLE_QPCH_HO_WAKEUP,
+   CP_IDLE_FROZEN,
+   CP_IDLE_MAX
+} CpIdleSubStateT;
+
+typedef enum
+{
+   PSW_BAD_FRAME = 0,
+   PSW_GOOD_FRAME
+} PswFrameQuality;
+
+typedef struct
+{
+   kal_bool     Stale;
+   kal_uint16   PnPhase;
+   kal_uint16   Strength;
+} PswPilotMeasurementT;
+
+typedef struct
+{
+   kal_uint16   PilotPN;
+   kal_bool     Stale;
+   kal_uint16   PnPhase;
+   kal_uint16   Strength;
+} PswRemainPilotMeasurementT;
+
+/*------------------------------------------------------------------------
+  Define funtion prototypes
+-------------------------------------------------------------------------*/
+
+extern PswIs95NamT* PswNamGet (void);
+extern void PswDbmInit( void );
+
+
+typedef enum
+{
+   PSW_AYNC_DATA = 1,   /* bit 0 */
+   PSW_FAX = 2,         /* bit 1 */
+   PSW_UPB_ASYNC = 64   /* bit 6 */
+} PswDsEnableBitMapT;
+
+typedef struct
+{
+   kal_bool CssSyncValOk;
+} PswCssValSyncRspMsgT;
+
+/***********************/
+/* Message Definitions */
+/***********************/
+typedef struct
+{
+   kal_uint8    numAlt;
+   kal_uint16   phase[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   kal_uint16   strength[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+} AlternatePilotsInfoT;
+
+typedef struct
+{
+   kal_bool     pilotFound;     /* Pilot found */
+   kal_uint16   pilotStrength;  /* Pilot Ec/Io (linear Q6) */
+   kal_int16    rxPower;        /* RSSI (dBm)  */
+#if defined(MTK_CBP_SYNC_OPTIMIZE)
+   kal_bool     retried;        /*For mini pilot acq, this channel retries normal ICS or not*/
+#endif
+   AlternatePilotsInfoT altPilots;
+} PswInitialAcqReportMsgT;
+typedef enum
+{
+   PI_OFF     = 0,
+   PI_ON      = 1,
+   PI_UNDEF   = 2,
+   PI_ERASURE = 3
+} QpchPiStat;
+
+typedef enum
+{
+   PSW_PCH   = 0,
+   PSW_QPCH1 = 1,
+   PSW_QPCH2 = 2,
+   PSW_CCI   = 3,
+   PSW_FCCCH = 4,
+   PSW_BC    = 5
+} WakeModeT;
+
+typedef struct
+{
+   WakeModeT WakeMode;            /* Status of a command previously sent by PS */
+   kal_int16    QpchInd;              /* OFF = 0, ON = 1, Erasure = -1             */
+   kal_int16    QpchMetric;           /* X1 if first indicator, X2 if second indicator, Q0 */
+   kal_int16    PilotEnergy;          /* Usable path combined Pilot Energy, Q0 */
+   kal_uint16   EcIo;                 /* Mini-Acq Pilot Ec/Io */
+   kal_uint16   NumPath;              /* Number of usable path */
+   kal_uint16   QpchPilotPn;          /* Pilot PN Offset */
+   kal_uint32   SysTime;              /* Current CDMA time 20ms */
+} PswWakeStatusT;
+
+typedef struct
+{
+   PswCmdStatusT  CmdStatus;               /* Status of a command previously sent by PS */
+   PswWakeStatusT WakeStatus;              /* Status of a command previously sent by PS */
+} PswCmdStatusMsgT;
+
+typedef struct
+{
+   kal_uint16   PnPhase;
+   kal_uint16   Strength;
+} PswCandFreqMeasT;
+
+typedef struct
+{
+   kal_int16 cfTotalRxPwr;   /* Total Rx Power on CF */
+   kal_uint8 NumPilots;      /* Number of pilot measurements */
+   PswCandFreqMeasT CfPilotList[SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];
+} PswCandFreqMeasurementsMsgT;
+
+typedef struct
+{
+   kal_uint8 TotalOffTimeFwd;                  /* Total time spent off of forward channel */
+   kal_uint8 MaxOffTimeFwd;                    /* Max time spent off of forward channel   */
+   kal_uint8 TotalOffTimeRev;                  /* Total time spent off of reverse channel */
+   kal_uint8 MaxOffTimeRev;                    /* Max time spent off of reverse channel   */
+} PswCandFreqTimesMsgT;
+
+typedef struct
+{
+   kal_uint16   PilotPN;                       /* Pilot PN to handoff to */
+} PswIdleHandoffMsgT;
+
+typedef struct
+{
+   SysSystemTimeT SysTime;                 /* System time the frame was received at */
+   kal_uint16         EbNt;
+   kal_uint16         DataSize;                /* Data size in bits*/
+#ifdef MTK_PLT_ON_PC_UT
+   kal_uint8          Data[PCH_FRAME_LEN];                 /* Starting address of frame data */
+#endif
+   kal_uint32         *DataAddress;             /* Starting address of frame data */
+} PswForwardPageChanFrameMsgT;
+
+typedef struct
+{
+    SysSystemTimeT      SysTime;            /* System time the frame was received at */
+    kal_uint8               MuxPduType;
+    kal_uint8               Category;
+    PswFrameQuality     Quality;
+    kal_uint16              SigBits;
+    kal_uint8               Data[MAX_FCH_FRAME_BYTE_LEN];            /* Starting address of frame data */
+}PswDschFrameMsgT;
+
+typedef struct
+{
+    kal_uint8       SchId;
+    kal_uint16      SchBadFrames;
+    kal_uint16      SchTotFrames;
+} PswPrmSchT;
+
+typedef struct
+{
+    kal_bool        FchMeasIncl;      /* FCH measurement included */
+    kal_uint8       FchBadFrames;     /* BAD_FRAMESs in IS2000A.5 2.6.4.1.1*/
+    kal_uint16      FchTotFrames;     /* TOT_FRAMESs in IS2000A.5 2.6.4.1.1*/
+    kal_bool        DcchMeasIncl;     /* DCCH measurement included */
+    kal_uint8       DcchBadFrames;    /* BAD_FRAMESs in IS2000A.5 2.6.4.1.1*/
+    kal_uint16      DcchTotFrames;    /* TOT_FRAMESs in IS2000A.5 2.6.4.1.1*/
+    kal_uint8       NumForSch;        /* Number of FSCH to report */
+    PswPrmSchT  SchPmr[ SYS_MAX_FSCH ];
+}PswPmrMsgT;
+
+/*AKK 01-26-01 Added the following for phase2 Outer Loop Report Message */
+typedef struct
+{
+    kal_uint8 SchId;
+    kal_uint8 FpcSchCurrSetPt;
+}PswFpcSchReportT;
+
+typedef struct
+{
+   kal_bool          FchIncl;
+   kal_uint8         FpcFchCurrSetPt;
+   kal_bool          DcchIncl;
+   kal_uint8         FpcDcchCurrSetPt;
+   kal_uint8         NumSup;
+   PswFpcSchReportT FpcSch[2];
+}PswOuterLoopReportReqMsgT;
+/*END--AKK 01-26-01 Added the following for phase2 Outer Loop Report Message */
+
+typedef struct
+{
+   SysSystemTimeT SysTime;                 /* System time the frame was received at */
+   kal_uint16         DataSize;                /* Data size in bits     */
+   kal_uint8          Data[1];                 /* Starting address of frame data        */
+}PswFCCCHFrameMsgT;
+
+typedef struct
+{
+   SysSystemTimeT SysTime;                 /* System time the frame was received at */
+   kal_uint16         DataSize;                /* Data size in bits   */
+   kal_uint8          Data[1];                 /* Starting address of frame data        */
+}PswBCCHFrameMsgT;
+
+typedef struct
+{
+   SysSystemTimeT FrameNum;                /* Frame number this signaling data */
+                                           /* was received. Note: There is no system */
+                                           /* time while on the sync channel so a */
+                                           /* counter is used for the frame time */
+#ifdef MTK_PLT_ON_PC_UT
+   kal_uint8    Data[PSW_SYNC_DATA_SIZE*9];  /* This is a fixed 24 bit size */
+#endif
+  kal_uint16     EbNt;
+  kal_uint16     DataLength;
+  kal_uint8     *DataAddress;
+}PswForwardSyncChanFrameMsgT;
+
+typedef struct
+{
+   SysSystemTimeT SysTime;         /* System time the frame was received at */
+   kal_uint16         DataSize;        /* Data size in bits */
+   kal_uint8          Data[1];         /* Starting address of frame data */
+}PswForwardBCCHFrameMsgT;
+
+typedef struct
+{
+   SysSystemTimeT SysTime;         /* System time the frame was received at */
+   kal_uint16         DataSize;        /* Data size in bits */
+   kal_uint8          Data[1];         /* Starting address of frame data */
+}PswForwardFCCCHFrameMsgT;
+
+typedef struct
+{
+   SysSystemTimeT       SysTime;        /* System time the frame was received at */
+   SysMultiplexOptionT  MultiplexOpt;   /* multiplex option being used */
+                                        /* (i.e. rate set) */
+   kal_uint16               Strength;       /* Power of the pilot in Q16 linear units */
+   PswFrameCatagoryT    Catagory;       /* Frame category - size of data derived from this */
+   kal_uint8                Data[1];        /* Starting address of frame data */
+}PswForwardTrafficChanFrameMsgT;
+
+typedef struct
+{
+   kal_bool     enable;                       /* KAL_TRUE power up, KAL_FALSE power down */
+} PswFlyModeMsgT;
+
+typedef struct
+{
+   kal_bool     PowerUp;                       /* KAL_TRUE power up, KAL_FALSE power down */
+} PswPowerMsgT;
+
+typedef struct
+{
+   kal_bool     EnablePrl;   /* KAL_FALSE if PRL is not to be used in system selection */
+} PswEnablePrlMsgT;
+
+typedef struct
+{
+   kal_uint8 NumActive;                        /* Number of active set pilot measurements */
+   kal_uint8 NumCandidate;                     /* Number of candidate set pilot measurements */
+   kal_uint8 NumNeighbor;                      /* Number of neighbor set pilot measurements */
+   kal_uint8 NumRemaining;                      /* Number of neighbor set pilot measurements */
+   PswPilotMeasurementT Active [SYS_CP_MAX_ACTIVE_LIST_PILOTS];
+   PswPilotMeasurementT Candidate [SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   PswPilotMeasurementT Neighbor [SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];
+   PswPilotMeasurementT Remaining [SYS_CP_MAX_REMAINING_LIST_PILOTS];
+} DebugPilotInfo;
+
+typedef struct
+{
+   kal_int16  PilotSeq;
+   kal_uint16 ReferencePN;
+   kal_uint8 NumActive;                        /* Number of active set pilot measurements */
+   kal_uint8 NumCandidate;                     /* Number of candidate set pilot measurements */
+   kal_uint8 NumNeighbor;                      /* Number of neighbor set pilot measurements */
+   PswPilotMeasurementT Active [SYS_CP_MAX_ACTIVE_LIST_PILOTS];
+   PswPilotMeasurementT Candidate [SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   PswPilotMeasurementT Neighbor [SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];
+} PswScanMeasurementsMsgT;
+
+typedef enum
+{
+    IGNORE_N5M_FRAMES_IN_TC_INIT = 0,
+    IGNORE_BS_ACK_IN_TC_INIT = 1,
+    IGNORE_HHO_SUCCESS = 2,
+    MAX_NUM_PSW_TEST_MODE_TIMER_TYPE
+} PswTestModeTimerTypeT;
+
+ typedef enum
+  {
+    TM_CRC = 0,                                 /* Enable/Disable CRC Checking                 */
+    TM_REMAIN_IN_SYNC_STATE = 1,                /* Force MS to stay on Sync Channel            */
+    TM_ENABLE_IDLE_HANDOFF  = 2,                /* Enable Idle Handoff */
+    TM_ENABLE_MSG_INJECTION = 3,                /* Message Injection Test Mode */
+    TM_ENABLE_SLOTTED_MODE  = 4,                /* Enable Slotted Mode */
+    TM_ENABLE_REGISTRATION  = 5,                /* enable/disable registration */
+    TM_ENABLE_PAGE_RESPONSE = 6,                /* enable/disable page response */
+
+    TM_ENABLE_QPCH_MODE          = 17,
+    TM_DISABLE_ACCESS_AUTH_PARMS = 18,   /* Don't include auth parameters in access msgs */
+    TM_DISPLAY_LOC_DATA          = 19,    /* dump Location Services Data */
+    TM_ENABLE_REMAINING_SET_SEARCH= 20,    /* Controls the remaining set search */
+    TM_IGNORE_OTA_AKEY_PREV      = 21,    /* Ignore A_KEY_PREV in MS Key Req Msg */
+
+    TM_QPCH_SET_PI1              = 22,    /* Set Paging Indicator 1 override */
+    TM_QPCH_SET_PI2              = 23,    /* Set Paging Indicator 2 override */
+    TM_CONTINUOUS_BCCH           = 24,    /* Continuously receive the BCCH channel */
+    TM_START_BCCH                = 25,    /* Used to start or stop the BCCH channel */
+    TM_SLOTTED_DELAY             = 26,     /* Used to delay before going to sleep in slotted paging */
+
+    TM_REMAIN_IN_PILOT_STATE            = 30,    /* Force MS to stay on Pilot Acquisition state */
+    TM_REMAIN_IN_IDLE_SLOTTED_OFF_STATE = 31,    /* Force MS to stay on Idle state, slotted off */
+    TM_REMAIN_IN_IDLE_SLOTTED_ON_STATE  = 32,    /* Force MS to stay on Idle state, slotted on  */
+    TM_REMAIN_IN_TRAFFIC_STATE          = 33,    /* Disable fade timer  */
+    TM_SECURE_DATA_SPY_DUMP             = 34,    /* Trigger Dump of Secure Data Spy */
+    TM_ENABLE_IHO_INTER_TEST            = 35,    /* For inter IHO script test*/
+    TM_ENABLE_HO_CF_TEST                = 36,    /* For traffic inter freq handoff test*/
+    TM_ENABLE_TIMER_OUT_TEST            = 37,    /* For timer out test*/
+    MAX_NUM_PSW_TEST_MODE
+  }PswTestModeT, TestModeMsgT;
+
+#define TM_QPCH_FLAG_WRITE_NV 0xfffe
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+
+typedef PACKED_PREFIX struct
+{
+    PswTestModeT Mode;
+} PACKED_POSTFIX PswEngineTestModeGetReqMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool    defineRcForAllSo;
+    kal_uint8   forRc;
+    kal_uint8   revRc;
+} PACKED_POSTFIX  PswSetServiceConfigReqMsgT;
+#endif
+
+typedef struct
+{
+   kal_uint8  NumAlt;
+   kal_uint16 Phase[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   kal_uint16 Strength[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+}PswL1dAlternatePilotsMsgT;
+
+/* PSW_LOCATION_SVC_CFG_MSG */
+typedef struct {
+   kal_bool Mode; /* location privacy enabled */
+} PswLocationSvcCfgMsgT;
+
+typedef struct {
+   kal_uint8 event;
+   kal_uint8 *MsgDataP;
+} PswLocStateChangedMsgT;
+
+typedef enum
+{
+   PSW_REQUEST_MODE_CDMA_ONLY = 1,
+   PSW_REQUEST_MODE_WIDE,
+   PSW_REQUEST_MODE_CDMA_WIDE,
+   PSW_REQUEST_MODE_NARROW_ONLY,
+   PSW_REQUEST_MODE_CDMA_NARROW_ONLY,
+   PSW_REQUEST_MODE_NARROW_WIDE,
+   PSW_REQUEST_MODE_NARROW_WIDE_CDMA
+} PswRequestModeT;
+
+typedef enum
+{
+   PSW_NT_UNKNOWN        = 0,
+   PSW_NT_INTERNATIONAL,
+   PSW_NT_NATIONAL,
+   PSW_NT_NETWORK_SPECIFIC,
+   PSW_NT_SUBSCRIBER,
+   PSW_NT_RESERVED,
+   PSW_NT_ABBREVIATED    = 6
+} PswNumberTypeT;
+
+typedef enum
+{
+   PSW_NP_UNKNOWN = 0,
+   PSW_NP_ISDN_TELEPHONY,
+   PSW_NP_RESERVED2,
+   PSW_NP_DATA,
+   PSW_NP_TELEX,
+   PSW_NP_RESERVED5,
+   PSW_NP_RESERVED6,
+   PSW_NP_RESERVED7,
+   PSW_NP_RESERVED8,
+   PSW_NP_PRIVATE = 9
+} PswNumberPlanT;
+
+typedef enum  /* This section needs to be defined in an order as it appears in SCCGEN.H */
+{
+   PSW_UNKNOWN_SERVICE_TYPE=0,
+   PSW_VOICE_SERVICE_TYPE,
+   PSW_ANALOG_VOICE_SERVICE_TYPE,
+   PSW_ASYNC_FAX_DATA_SERVICE_TYPE,
+   PSW_ASYNC_DATA_SERVICE_TYPE,
+   PSW_FAX_DATA_SERVICE_TYPE,
+   PSW_UP_ASYNC_DATA_SERVICE_TYPE,
+   PSW_PACKET_DATA_SERVICE_TYPE,
+   PSW_QNC_PACKET_DATA_SERVICE_TYPE,
+   PSW_UP_PACKET_DATA_SERVICE_TYPE,
+   PSW_LPBK_SERVICE_TYPE,
+   PSW_SMS_SERVICE_TYPE,
+   PSW_OTASP_SERVICE_TYPE,
+   PSW_TCP_BROWSER_DATA_SERVICE_TYPE,
+   PSW_LOC_SERVICE_TYPE
+} PswServiceT;
+
+typedef enum
+{
+  PSW_PI_ALLOWED,
+  PSW_PI_RESTRICTED,
+  PSW_PI_NUMBER_NA,
+  PSW_PI_RSVD
+} PswPresentationIndicatorT;
+
+typedef enum
+{
+  PSW_SI_USER_PROVIDED_NOT_SCREENED,
+  PSW_SI_USER_PROVIDED_VERIFIED_PASSED,
+  PSW_SI_USER_PROVIDED_VERIFIED_FAILED,
+  PSW_SI_NETWORK_PROVIDED
+} PswScreeningIndicatorT;
+
+typedef struct
+{
+   PswNumberTypeT Type;
+   PswNumberPlanT Plan;
+   PswPresentationIndicatorT Pi;
+   PswScreeningIndicatorT    Si;
+   kal_int8 Number[CP_MAX_CALLING_PARTY_NUMBER_SIZE + 1];  /* Inc NULL terminator */
+} PswCallingPartyNumberT;
+
+/* move these two for CBP3_MERGE */
+typedef enum
+{
+  PSW_SUBADDRESS_TYPE_NSAP,
+  PSW_SUBADDRESS_TYPE_USER_SPECIFIED = 2
+} PswSubaddressTypeT;
+
+/* registration type enum */
+typedef enum
+{
+  TIMER_BASED_REGISTRATION = 0,
+  POWER_UP_REGISTRATION = 1,
+  ZONED_BASED_REGISTRATION = 2,
+  POWER_DOWN_REGISTRATION = 3 ,
+  PARAMETER_CHANGE_REGISTRATION = 4,
+  ORDERD_REGISTRATION = 5,
+  DISTANCE_BASED_REGISTRATION = 6
+} reg_type_enum;
+
+typedef struct
+{
+  kal_bool                Extension;
+  PswSubaddressTypeT  Type;
+  kal_bool                Indicator;
+  kal_int8            Address[CP_MAX_SUBADDRESS_SIZE + 1];/*Inc NULL terminator*/
+} PswSubaddressT;
+
+typedef struct
+{
+  kal_bool num_incl;
+  kal_bool digitMode;
+  PswNumberTypeT    type;
+  PswNumberPlanT    plan;
+  kal_uint8   NumChar;
+  kal_uint8 ms_orig_pos_loc_ind;
+  kal_uint8 number[CP_MAX_CALLING_PARTY_NUMBER_SIZE + 1];
+}PswGlobalEmergencyCall;
+
+typedef struct
+{
+  kal_bool num_info_incl;
+  PswNumberTypeT    type;
+  PswNumberPlanT    plan;
+  kal_uint8 numFields;
+  kal_uint8 number[CP_MAX_KEYPAD_FACILITY_SIZE+1];
+}PswExtKeypadFacility;
+
+typedef struct
+{
+  kal_bool  Mode;
+} PswSetPrivacyModeMsgT;
+
+typedef enum
+{
+   CALL_MODE_UNKNOWN,
+   NORMAL_VOICE,
+   EMERGENCY_E911,
+   WPS,
+   WPS_E911,
+   OTASP,
+   CALL_MODE_END
+} PswCallModeT;
+
+typedef struct
+{
+   PswRequestModeT   RequestMode;         /* requested call type          */
+   PswCallModeT      CallMode;            /* call type (e.g. emergency, OTASP, WPS ...) */
+   PswServiceOptionT ServiceOption;       /* requested service option     */
+   kal_bool              Encoded;
+   kal_bool              DigitMode;           /* digit encoding indicator     */
+   PswNumberTypeT    NumberType;          /* type of number               */
+   PswNumberPlanT    NumberPlan;          /* numbering plan               */
+   kal_uint8             NumDigits;           /* number of digits to be dialled */
+   kal_uint8             OtaspMode;           /* target band or system for OTASP Orig */
+   kal_uint8             Digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1];/* ascii digits, null terminated string */
+   PswCallingPartyNumberT CPNInfo;         /* Calling Party Number Info   */
+   PswServiceT       ServiceType;          /* service types.              */
+   kal_bool              MultipleCallingPartyNum; /* MS has > 1 calling party num */
+   kal_bool              SendCallingPartySubaddr; /* subaddress included?     */
+   PswSubaddressT    CallingPartySubaddr;
+   kal_bool              SendCalledPartySubaddr;  /* subaddress included?     */
+   PswSubaddressT    CalledPartySubaddr;
+   kal_uint16            pktDataIncTimer;           /* in seconds*/
+   NspeAppT          pktDataAppType;
+} PswCallInitiateMsgT;
+
+typedef struct
+{
+   kal_uint32 TimerId;                         /* Expired timer Id */
+} PswTimerExpiredMsgT;
+
+/* MSG_ID_PSW_VAL_SET_DDTM_MSG */
+typedef struct
+{
+   kal_bool enabled; /* TRUE: DDTM enabled, FALSE: DDTM disabled */
+} PswValSetDDTMMsgT;
+
+typedef struct
+{
+   kal_uint32 Mux1Stats[PSW_NUM_MUX1_COUNTER_INDEX];
+   kal_uint32 Mux2Stats[PSW_NUM_MUX2_COUNTER_INDEX];
+}PswRevStatParmsMsgT;
+
+typedef struct
+{
+   kal_bool  Encoded;
+   kal_uint8 Digit;
+} PswSendContDTMFMsgT;
+
+typedef struct
+{
+   kal_bool  Encoded;
+   kal_uint8 NumDigits;
+   kal_uint8 DtmfOnLength;
+   kal_uint8 DtmfOffLength;
+   kal_uint8 Digits[ CP_MAX_BURST_DTMF_DIGITS + 1 ]; /* Incl NULL terminator */
+} PswSendBurstDTMFMsgT;
+
+typedef struct
+{
+   PswNumberTypeT Type;
+   PswNumberPlanT Plan;
+   kal_int8           Number[CP_MAX_CALLED_PARTY_NUMBER_SIZE + 1];/*Inc NULL terminator*/
+}  PswCalledPartyNumberT;
+
+
+typedef struct
+{
+   kal_bool   SendFeatureIndicator;
+   kal_uint8  Feature;
+   kal_bool   SendKeypadFacility;
+   kal_int8   KeypadFacility[CP_MAX_DISPLAY_SIZE  +  1];  /* Incl NULL terminator */
+   kal_bool   SendCalledPartyNumber;
+   PswCalledPartyNumberT CalledPartyNumber;
+   kal_bool   SendCallingPartyNumber;
+   PswCallingPartyNumberT CallingPartyNumber;
+   kal_bool   SendConnectedNumber;
+   PswCallingPartyNumberT ConnectedNumber;   /* Same format as CallingPartyNumber */
+   kal_bool   Send;
+   kal_bool   SendCalledPartySubaddress;
+   PswSubaddressT CalledPartySubaddress;
+   kal_bool   SendCallingPartySubaddress;
+   PswSubaddressT CallingPartySubaddress;
+   kal_bool   SendConnectedSubaddress;
+   PswSubaddressT ConnectedSubaddress;
+   kal_bool sendGlobalEmergencyCall;
+   PswGlobalEmergencyCall  EmergencyNum;
+   kal_bool   sendExtKeypadFacility;
+   PswExtKeypadFacility ExtKeypadFac;
+#ifdef MTK_CBP
+   kal_bool   isEccWith3WC;  /* to indicate that this is a ECC throurh 3WC or not */
+#endif
+} PswHookflashMsgT;
+
+typedef struct
+{
+   kal_uint8 NumFrames;  /* Number of frames spent off the serving frequency */
+} PswEndCFMeasureMsgT;
+
+typedef struct
+{
+   kal_uint16   EnableBits;
+} PswDsEnableMsgT;
+
+typedef enum
+{
+   PSW_MDR_DISABLED = 0,
+   PSW_MDR_IF_AVAIL,
+   PSW_MDR_ONLY
+} PswPktSvcPrefT;
+
+typedef struct
+{
+   kal_uint8           pageAcceptMap;
+   kal_uint16          ayncDataSOPref;
+   kal_uint16          faxSOPref;
+   kal_bool            dormantBySCC;
+   kal_uint16          ldrSOPrefer;
+   kal_uint16          mdrSOPrefer;
+   PswPktSvcPrefT  pktSvcPref;
+   kal_uint8           forRc;
+   kal_uint8           revRc;
+} PswDataPrefReqMsgT;
+
+typedef enum
+{
+   PSW_PREFER_MUX1 = 1,
+   PSW_PREFER_MUX2
+} PswMuxPrefMapT;
+
+typedef struct
+{
+   kal_uint16           voiceSO;
+   PswMuxPrefMapT   MuxOptPref;
+   kal_bool             ToNegotiate;
+   kal_uint8            forRc;
+   kal_uint8            revRc;
+} PswVsPrefReqMsgT;
+
+typedef struct
+{
+   kal_uint8            pageAccptMap;
+   kal_uint16           lpbkSO;
+   kal_uint16           markovSO;
+   kal_uint16           supplSO;
+   kal_bool             ToNegotiate;
+   kal_uint8            forRc;
+   kal_uint8            revRc;
+} PswLsPrefReqMsgT;
+
+typedef struct
+{
+  kal_uint16 ServiceOption;
+  kal_bool   ToNegotiate;
+  kal_uint8  forRc;
+  kal_uint8  revRc;
+} PswSetServiceConfigMsgT;
+
+/* SNR SR */
+typedef struct
+{
+   kal_bool  enable;
+   kal_uint8 numAttempts;         /* See MAX_SILENT_RETRIES */
+   kal_uint8 timeBetweenAttempts; /* See SILENT_RETRY_TIMEOUT */
+   kal_uint8 timeBeforeAbort;     /* See SILENT_RETRY_RESET_TIMEOUT */
+} PswSetSilentRetryMsgT;
+
+typedef struct
+{
+   kal_uint32 CustomFeature;
+   /*each bit is defined for every cumtomfeafure */
+} PswCustomFeatureMsgT;
+
+typedef struct
+{
+  ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGetSilentRetryStatusMsgT;
+
+/* Get Active NAM response message */
+typedef struct
+{
+  kal_bool enable;
+} PswGetSilentRetryStatusResponseMsgT;
+
+typedef struct
+{
+   kal_bool     E911Mode;  /* KAL_TRUE=EN, KAL_FALSE=DIS */
+} PswE911ModeMsgT;
+
+typedef struct
+{
+  kal_uint8 PRev;
+} PswSetPRevMsgT;
+
+typedef struct
+{
+   NamNumber   namNumber;
+} PswGetPrlMsgT;
+
+typedef enum
+{
+   PSW_PAM_DISABLE,
+   PSW_PAM_FAX_NEXT_CALL,
+   PSW_PAM_FAX_TILL_PWDN,
+   PSW_PAM_DATA_NEXT_CALL,
+   PSW_PAM_DATA_TILL_PWDN
+} DsPreArangT;
+
+typedef struct
+{
+   DsPreArangT paType;
+} PswVsDsPreArangMsgT;
+
+typedef struct
+{
+   kal_uint8  HATtmrValue;
+   kal_uint8  HTtmrValue;
+} PswSetPkzidHysterTmrMsgT;
+
+typedef struct
+{
+   kal_uint8  reason;
+} PswPsCallRelMsgT;
+
+typedef struct
+{
+   kal_uint8  ConRef;
+   kal_uint16 SrvOpt;
+   kal_uint8  Length;
+   kal_uint8  CtrlRec[MAX_MSG_LEN];
+} PswServiceOptionControlRespMsgT;
+
+typedef struct
+{
+   kal_uint16  RemainDuration;       /* Remaining RSCH duration as assigned by BS */
+} PswRschRelIndMsgT;
+
+/* RLP Message Definitions */
+typedef struct
+{
+   kal_uint8        SrId;
+   kal_uint16       DataSize;
+} PswDataBufferStatusMsgT;
+
+typedef struct
+{
+   kal_uint8        SoPref;
+   kal_uint8        forRc;
+   kal_uint8        revRc;
+} PswSmsPrefReqMsgT;
+
+typedef struct
+{
+  kal_uint8  DataByte[PSW_MAX_SMS_SIZE];   /* contents of SMS.     */
+  kal_uint16 len;        /* the length of data in DataByte[ ]      */
+  kal_bool   confirm;    /* confirm-required indocator             */
+  kal_uint8  Digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1]; /* ascii
+                                 digits, null terminated string*/
+  kal_bool   IsE911;    /* IsE911         */
+} PswSmsTxReqMsgT;
+typedef struct
+{
+  kal_uint8  len;   /* contents of SMS.     */
+  kal_uint8  addr[PSW_MAX_SMS_SIZE/4]; /* addr*/
+} PswSmsBroadcastExpectedMsgT;
+typedef struct
+{
+  kal_uint8  len;   /* contents of SMS.     */
+  kal_uint8  data[PSW_MAX_SMS_SIZE/2]; /* data*/
+} PswSmsMtDataBurstMsgT;
+
+
+typedef struct
+{
+   kal_bool         Success;
+} PswOtaspRcvdMsgT;
+
+typedef struct
+{
+   kal_uint16       Length;
+   kal_uint8*       Data;
+} PswOtaspTxReqMsgT;
+
+typedef struct
+{
+   kal_uint16       SoPref;
+   kal_uint8        forRc;
+   kal_uint8        revRc;
+} PswOtaspSoPrefMsgT;
+
+typedef struct
+{
+   kal_uint8        mode;
+} PswOtaSetPowerUpModeMsgT;
+
+typedef struct
+{
+   kal_uint16       NewSo;
+} PswVsSwitchSoMsgT;
+
+typedef struct
+{
+   NamNumber   namNumber;
+} PswGetNamMsgT;
+
+typedef struct
+{
+   NamNumber namNumber;
+   kal_bool      ScmIncl;
+   kal_uint8     Scm[NAM_BANDS_SUPPORTED];
+   kal_bool      SlotCycleIncl;
+   kal_uint8     SlotCycleIndex;
+   kal_bool      LckRsnIncl;
+   kal_uint8     LckRsn;
+   kal_bool      MaintRsnIncl;
+   kal_uint8     MaintRsn;
+   kal_bool      prefServiceIncl;
+   kal_uint8     prefBand;
+   kal_uint8     prefMode;
+   kal_uint8     prefBlockBand1;
+   kal_uint8     prefServBand0;
+   kal_bool      ImsiMIncl;
+   kal_bool      ImsiMValid;
+   IMSIType  IMSI_M;
+
+   kal_bool      SidNidIdexIncl;
+   kal_uint8     SidNidIdex;
+   kal_bool      SidIncl;
+   kal_uint16    Sid;
+   kal_bool      NidIncl;
+   kal_uint16    Nid;
+   kal_bool      AccolcIncl;
+   kal_uint8     Accolc;
+   kal_bool      TermInfoIncl;
+   kal_uint8     MobTermHome;
+   kal_uint8     MobTermSid;
+   kal_uint8     MobTermNid;
+   kal_bool      SpcIncl;
+   kal_uint32    Spc;
+   kal_bool      MdnIncl;
+   kal_uint8     MdnNumDigits;
+   kal_uint8     Mdn[16];
+   kal_bool      AllowOtapaIncl;
+   kal_bool      AllowOtapa;
+   kal_bool      AnalogParmIncl;
+   kal_uint16    HomeSid;
+   kal_uint16    Sids;
+   kal_uint16    LocaIds;
+   kal_bool      Puregs;
+   kal_bool      systemSelectIncl;
+   kal_uint8     SystemSelect;
+
+   kal_bool      ImsiTIncl;
+   kal_bool      ImsiTValid;
+   IMSIType  IMSI_T;
+
+   kal_bool      CpcaCscaIncl;
+   kal_uint16    CPCA, CSCA;      /* CDMA Primary (and Secondary) Channel A   */
+
+   kal_bool      CpcbCscbIncl;
+   kal_uint16    CPCB, CSCB;      /* CDMA Primary (and Secondary) Channel B   */
+
+} PswNamChangedMsgT;
+
+typedef struct
+{
+  kal_uint8 msResult[64];
+  kal_uint8 NumBytes;
+} PswModExpMSResultMsgT;
+
+typedef struct
+{
+      kal_uint8 otaK[8];
+} PswModExpBSResultMsgT;
+
+typedef struct
+{
+   kal_bool SSPRListFillOK;
+} PswFillSSPRRspMsgT;
+
+typedef struct
+{
+   kal_uint8 *IS683Msg;
+   kal_uint16 Length;
+} PswIOTAIS683MsgT;
+
+typedef struct
+{
+   kal_uint8 *IOTAPrl;
+   kal_uint16 Length;
+} PswIOTAPRLMsgT;
+
+/* from MMI - SMS related */
+#ifdef SYS_OPTION_SMS_ENGINE
+
+typedef struct
+{
+   PswServiceOptionT SrvOpt;
+} PswSmsPrefSrvOptMsgT;
+
+typedef struct
+{
+   kal_bool  DigitMode;
+   kal_bool  NumberMode;
+   kal_uint8 NumberType;
+   kal_uint8 NumberPlan;
+   kal_uint8 NumFields;
+   kal_uint8 Char[ SMS_MAX_ADDRESS_CHARS ];
+} PswSmsMCAddrT;
+
+typedef struct
+{
+   kal_uint8 Type;
+   kal_bool  Odd;
+   kal_uint8 NumFields;
+   kal_uint8 Char[ SMS_MAX_SUBADDRESS_CHARS ];
+} PswSmsMCSubaddrT;
+
+typedef struct
+{
+   kal_uint16 Category;
+   kal_uint8  Language;
+   kal_uint8  CategoryResult;
+} PswCategoryT;
+
+typedef struct
+{
+   kal_uint8 NumCategories;
+   PswCategoryT Cat[ SMS_MAX_NUM_SERVICE_CATEGORIES ];
+} PswSrvCatProgResultT;
+
+typedef struct
+{
+   kal_uint8 DispMode;
+   kal_uint8 reserved;
+} PswDispModeT;
+
+typedef struct
+{
+   kal_uint16 TeleSrvId;                       /* Teleservice ID                  */
+   PswSmsMCAddrT DefaultDestAddr;          /* Message center address of all   */
+                                           /* submitted messages              */
+   kal_bool DefaultSubaddrPres;                /* Indicator if subaddress present */
+   PswSmsMCSubaddrT DefaultSubaddr;        /* Message center subaddress       */
+} PswSmsConnectMsgT;
+
+typedef struct
+{
+   kal_uint16 TeleSrvId;                       /* Teleservice ID                  */
+} PswSmsDisconnectMsgT;
+
+/*
+** PSW_GET_STAT_CNT_MSG,
+*/
+typedef struct
+{
+   StatCounterT   StatCounter;         /* Statistics counter */
+   kal_uint8          NumElement;          /* Number of elements in StatCounter   */
+   kal_uint32         *MuxStat;
+   #ifdef MTK_PLT_ON_PC_UT
+   kal_uint32         StatCnt[255];
+   #endif
+} PswStatCntMsgT;
+
+#define PSW_SMS_MAX_USER_DATA_CHARS 256
+
+typedef struct
+{
+   kal_uint8 Year;
+   kal_uint8 Month;
+   kal_uint8 Day;
+   kal_uint8 Hours;
+   kal_uint8 Minutes;
+   kal_uint8 Seconds;
+} PswSmsAbsTimeT;
+
+typedef enum
+{
+   PSW_CAT_UNKNOWN,
+   PSW_CAT_EMERGENCIES,
+   PSW_CAT_ADMINISTRATIVE,
+   PSW_CAT_MAINTENANCE,
+   PSW_CAT_GEN_NEWS_LOCAL,
+   PSW_CAT_GEN_NEWS_REGIONAL,
+   PSW_CAT_GEN_NEWS_NATIONAL,
+   PSW_CAT_GEN_NEWS_INTERNATIONAL,
+   PSW_CAT_FINANCE_NEWS_LOCAL,
+   PSW_CAT_FINANCE_NEWS_REGIONAL,
+   PSW_CAT_FINANCE_NEWS_NATIONAL,
+   PSW_CAT_FINANCE_NEWS_INTERNATIONAL,
+   PSW_CAT_SPORTS_NEWS_LOCAL,
+   PSW_CAT_SPORTS_NEWS_REGIONAL,
+   PSW_CAT_SPORTS_NEWS_NATIONAL,
+   PSW_CAT_SPORTS_NEWS_INTERNATIONAL,
+   PSW_CAT_ENTERTAINMENT_NEWS_LOCAL,
+   PSW_CAT_ENTERTAINMENT_NEWS_REGIONAL,
+   PSW_CAT_ENTERTAINMENT_NEWS_NATIONAL,
+   PSW_CAT_ENTERTAINMENT_NEWS_INTERNATIONAL,
+   PSW_CAT_LOCAL_WEATHER,
+   PSW_CAT_TRAFFIC,
+   PSW_CAT_FLIGHT_SCHEDULE,
+   PSW_CAT_RESTAURANTS,
+   PSW_CAT_LODGINGS,
+   PSW_CAT_RETAIL_DIRECTORY,
+   PSW_CAT_ADVERTISEMENT,
+   PSW_CAT_STOCK_QUOTES,
+   PSW_CAT_EMPLOYMENT_OPPORTUNITIES,
+   PSW_CAT_MEDICAL_HEALTH,
+   PSW_CAT_TECH_NEWS,
+   PSW_CAT_MULTI_CATEGORY
+} PSW_SMS_SERVICE_CAT;
+
+typedef enum
+{
+   PSW_NORMAL,
+   PSW_INTERACTIVE,
+   PSW_URGENT,
+   PSW_EMERGENCY
+} PSW_SMS_PRIORITY;
+
+typedef enum
+{
+   PSW_SMS_NOT_RESTRICTED,
+   PSW_SMS_RESTRICTED,
+   PSW_SMS_CONFIDENTIAL,
+   PSW_SMS_SECRET
+} PSW_SMS_PRIVACY;
+
+typedef enum
+{
+   PSW_SMS_MOBILE_DEFAULT,
+   PSW_SMS_LOW_PRIORITY,
+   PSW_SMS_MEDIUM_PRIORITY,
+   PSW_SMS_HIGH_PRIORITY
+} PSW_SMS_ALERT;
+
+typedef enum
+{
+   PSW_SMS_UNKNOWN,
+   PSW_SMS_ENGLISH,
+   PSW_SMS_FRENCH,
+   PSW_SMS_SPANISH,
+   PSW_SMS_JAPANESE,
+   PSW_SMS_KOREAN,
+   PSW_SMS_CHINESE,
+   PSW_SMS_HEBREW
+} PSW_SMS_LANG;
+
+typedef struct
+{
+  kal_uint8 ErrorClass;
+  kal_uint8 MsgStatusCode;
+} PSW_MSG_STATUS;
+
+typedef enum
+{
+   PSW_SMS_DELIVERY_ACK = 4,
+   PSW_SMS_USER_ACK,
+   PSW_SMS_READ_ACK
+} PSW_MSG_TYPE;
+
+typedef struct
+{
+   kal_uint16 TeleSrvId;                       /* Teleservice ID                  */
+   kal_uint16 SeqNum;                          /* Unique number to coordinate the */
+                                           /* parameter and user data messages*/
+   kal_bool SendOnTraffic;                     /* Force SMS on Traffic or let CP  */
+                                           /* decide                          */
+
+   kal_bool SrvCatPres;                        /* If service catagory is present  */
+   PSW_SMS_SERVICE_CAT SrvCat;             /* Service Catagory                */
+   kal_uint16 MsgId;                           /* Message ID of submitted message */
+   kal_bool HeaderInd;                         /* Header Indicator                */
+   kal_bool BearerReplyOptPres;
+   kal_uint8 ReplySeq;
+   kal_uint8 NumUserDataMsgs;                  /* Number of User data messages    */
+   kal_bool AbsValPres;                        /* Absolute validity period present*/
+   PswSmsAbsTimeT AbsVal;                  /* Absolute validity period        */
+   kal_bool RelValPres;                        /* Relative validity period present*/
+   kal_uint8 RelVal;                           /* Relative validity period        */
+   kal_bool AbsDelPres;                        /* Absolute deferred delivery time */
+                                           /* present                         */
+   PswSmsAbsTimeT AbsDel;                  /* Absolute deferred delivery time */
+   kal_bool RelDelPres;                        /* Relative deferred delivery time */
+                                           /* present                         */
+   kal_uint8 RelDel;                           /* Relative deferred delivery time */
+   kal_bool PriPres;                           /* Priority indicator present      */
+   PSW_SMS_PRIORITY Pri;                   /* Priority indicator              */
+   kal_bool PrvPres;                           /* Privacy indicator present       */
+   PSW_SMS_PRIVACY Prv;                    /* Privacy indicator               */
+   kal_bool ReplyOptPres;                      /* If reply option is present      */
+   kal_bool UserAck;                           /* User acknowledgement requested  */
+   kal_bool DeliverAck;                        /* delivery acknowledgement        */
+                                           /* requested from message center   */
+   kal_bool ReadAck;                           /* read acknowledgement            */
+   kal_bool AlertPres;                         /* Alert on message delivery present*/
+   PSW_SMS_ALERT Alert;                    /* Alert on message delivery       */
+   kal_bool LangPres;                          /* Language indicator present      */
+   PSW_SMS_LANG Lang;                      /* Language indicator              */
+   kal_bool CallbackNumPres;                   /* Callback number present         */
+   PswSmsMCAddrT CallbackNum;              /* Callback number                 */
+   kal_bool OverrideAddrPres;                  /* Override Address Present        */
+   PswSmsMCAddrT OverrideAddr;             /* Override Address                */
+   kal_bool OverrideSubaddrPres;               /* Override Subaddress Present     */
+   PswSmsMCSubaddrT OverrideSubaddr;       /* Override Subaddress             */
+   kal_bool MsgDepIndexPres;                   /* Message Deposit Index present   */
+   kal_uint16 MsgDepIndex;                     /* Message Deposit Index           */
+   kal_bool SrvCatProgResultPres;              /* Service Category Program Results*/
+   PswSrvCatProgResultT SrvCatProgResult;  /* Service Category Program Results*/
+   kal_bool DispModePres;                      /* Service Category Program Results*/
+   PswDispModeT DispMode;                  /* Service Category Program Results*/
+} PswSmsSubmitParmsMsgT;
+
+typedef struct
+{
+   kal_uint16 SeqNum;
+   kal_uint8  MsgType;
+   kal_uint8  NumMsgs;
+   kal_uint8  MsgEncoding;
+   kal_uint8  NumFields;
+   kal_uint8  Char[ SMS_MAX_USERDATA_LENGTH ]; /* User Data field of message      */
+} PswSmsUserDataMsgT;
+
+typedef struct
+{
+   kal_uint16 TeleSrvId;                       /* Teleservice ID                  */
+   kal_uint16 MsgId;                           /* Message ID of submitted message */
+   kal_bool   HeaderInd;                       /* Header Indicator                */
+   kal_bool OverrideAddrPres;                  /* Override address present        */
+   PswSmsMCAddrT OverrideAddr;             /* Override address                */
+   kal_bool SubaddrPres;                       /* Subaddress Present              */
+   PswSmsMCSubaddrT Subaddr;               /* Subaddress                      */
+   kal_bool SendSmsCancelDb;                   /* Send SMS Cancel Databurst if needed */
+   kal_uint16 SeqNum;
+} PswSmsCancelMsgT;
+
+typedef struct
+{
+   kal_uint16 TeleSrvId;                       /* Teleservice ID                  */
+   kal_uint16 SeqNum;                          /* Unique number to cordinate the  */
+                                           /* parameters and user data messages*/
+   PswSmsMCAddrT Addr;                     /* Message ceneter address         */
+   kal_bool SubaddrPres;                       /* Subaddress Present              */
+   PswSmsMCSubaddrT Subaddr;               /* Subaddress                      */
+   kal_uint16 MsgId;                           /* Message ID of submitted message */
+   PSW_MSG_TYPE MsgType;                   /* User/Delivery/Read ack type     */
+   kal_bool HeaderInd;                         /* Header Indicator                */
+   kal_uint8 NumUserDataMsgs;                  /* Number of User data messages    */
+   kal_bool RespCodePres;                      /* User response code present      */
+   kal_uint8 RespCode;                         /* User response code              */
+   kal_bool TimeStampPres;                     /* Time Stamp present              */
+   PswSmsAbsTimeT TimeStamp;               /* Message Center Time Stamp       */
+   kal_bool MsgDepIndexPres;                   /* Message Deposit Index present   */
+   kal_uint16 MsgDepIndex;                     /* Message Deposit Index           */
+   kal_bool MsgStatusPres;                     /* Message Status present          */
+   PSW_MSG_STATUS MsgStatus;               /* Message Status                  */
+} PswSmsAckMsgT;
+
+typedef struct
+{
+   kal_uint32 SvcMask;  /* Refer to scc_msc.c / mscGetSvcBitMap() for mapping */
+   kal_uint32 LangMask; /* Refer to scc_msc.c / mscGetLangBitMap() for mapping */
+   PSW_SMS_PRIORITY Priority;
+} PswSmsBCastParmsMsgT;
+
+#if defined(LGT_EXTENSIONS)
+typedef struct
+{
+   kal_uint32 Param1;
+   kal_uint32 Param2;
+   PSW_SMS_PRIORITY Priority;
+} PswSmsUnknownParmsMsgT;
+#endif
+
+typedef enum
+{
+   PSW_NO_TERMINAL_PROBLEMS,
+   PSW_DESTINATION_RESOURSE_SHORTAGE,
+   PSW_DESTINATION_OUT_OF_SERVICE
+}PswTermStatusT;
+
+typedef struct
+{
+   PswTermStatusT Status;
+} PswSmsTerminalStatusMsgT;
+
+typedef struct
+{
+   kal_uint8 NumTempRetries;   /* Max # of retries if BS returns errorCode = Temporary */
+   kal_uint8 NumPermRetries;   /* Max # of retries if BS returns errorCode = Permanent */
+   kal_uint8 NumTimeoutRetries;/* Max # of retries if no BS SMS Ack received and timeout
+                              occurs */
+} PswSmsRetxAmountMsgT;
+
+typedef struct
+{
+   kal_uint8 ErrorClass;
+   kal_uint8 CasueCode;
+} PswSmsCauseCodeMsgT;
+
+typedef struct
+{
+   kal_uint16 SeqNum;
+   kal_uint8 ErrorClass;
+   kal_uint8 CauseCode;
+   kal_bool SendTlAck;
+} PswSmsReplyTlAckMsgT;
+
+ typedef struct
+ {
+ 	kal_bool MultiSMSMode;
+ }PswSMSModeMsgT;
+ /*
+	 This primitive is sent from md3-val to md3-psw to reply an tlack when receives SMS MT message.
+ */
+ typedef struct
+ {
+	 kal_uint8 len;
+	 kal_uint8 Pdu[MAX_SMS_ACK_PDU_LEN];
+     kal_uint16 seqNum;
+ }PswSMSTlackReqMsgT;
+
+typedef struct {
+   kal_bool    CbsState;                           /* KAL_FALSE, CBS off; KAL_TRUE, CBS on */
+   kal_uint32  LanMask;                            /* lanuage bitmap */
+   kal_uint32  ChaMask[PSW_SMS_CBS_CHA_MAX];       /* channels bitmap */
+   kal_uint32  CmasMask;                           /* cmas bitmap */
+}PswSmsCbsInfoT;
+
+#endif
+
+/*-------------------------------------------------------------------**
+  PSW_POS_AFLT_MEASUREMENTS_MSG
+  PswPosAfltMeasurementMsgT
+  L1D reports various position AFLT pilot set list information needed
+  by BS. This list is not necessarily a complete list of position AFLT
+  pilot set list but only those measurements that are completed as of
+  the time the message is generated.
+ *-------------------------------------------------------------------**/
+
+typedef struct
+{
+   kal_uint16  PilotPN;
+   kal_bool    Stale;
+   /* PILOT_PN_PHASE sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   kal_int32   PnPhase;
+   /* PILOT_STRENGTH sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   kal_uint16  Strength;
+   /* RMS_ERR_PHASE sent in PROVIDE PILOT PHASE MEASUREMENTS */
+} AFLTPilotMeasurementT;
+
+typedef struct
+{
+   kal_uint8 SeqNum;
+   /* TIME_REF_MS sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   kal_uint16 TimeRefMs;
+   kal_bool OffsetIncl;
+   kal_int16 MobOffset;
+   /* REF_PN sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   kal_uint16 RefPN;
+   /* REF_PILOT_STRENGTH sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   kal_uint16 RefPilotStrength;
+   /* NUM_PILOTS_P sent in PROVIDE PILOT PHASE MEASUREMENTS */
+   /* actual number of pilot measurements in AFLTPilotMeasurement */
+   kal_uint8  NumPilots;
+   AFLTPilotMeasurementT PosAFLT[SYS_CP_MAX_AFLT_LIST_PILOTS_MEAS];
+} PswPosAfltMeasurementMsgT;
+
+/*-------------------------------------------------------------------**
+  PSW_POS_AFLT_ACK_ABORT_MSG
+  PswPosAfltAckAbortMsgT
+  L1D, after receiving L1D_POS_AFLT_ABORT_MSG, acknowledges its
+  position search measurements aborted for given sequence number.
+ *-------------------------------------------------------------------**/
+
+typedef struct
+{
+  kal_uint16 SeqNum;
+} PswPosAfltAckAbortMsgT;
+
+/*-------------------------------------------------------------------**
+  PSW_POS_AFLT_ABORT_REQ_MSG
+  PswPosAfltAbortReqMsgT
+  L1D, requests for position search measurements aborted for given
+  sequence number.
+ *-------------------------------------------------------------------**/
+
+typedef struct
+{
+  kal_uint16 SeqNum;
+} PswPosAfltAbortReqMsgT;
+
+/* mclee location services request element messages */
+typedef struct
+{
+   kal_uint8 SessID;
+   kal_uint8 RejReqType; /* BS Request Element type */
+   kal_bool RejReason;
+} PswPosRejectMsgT;
+
+typedef struct
+{
+   kal_uint8 RecLen;
+   kal_uint8 ProvPseudorangeRec[PRM_MAX_SIZE];
+} PswPseudorangeMsmtRspMsgT;
+
+typedef struct
+{
+   kal_uint8       SoPref;
+   kal_uint8       forRc;
+   kal_uint8       revRc;
+} PswLocPrefReqMsgT;
+
+typedef struct
+{
+   kal_bool  Enable;
+   kal_uint8 N1;
+} PswGPSEnableReportsMsgT;
+
+typedef struct
+{
+   kal_uint16 Size;
+   kal_uint8    Sap;
+   kal_uint8  DataP[200];
+} PswIs801TcpbFwdDataRespInfoMsgT;
+
+typedef struct
+{
+   kal_uint8 SessionId;
+} PswIs801TcpBRevDataRespMsgT;
+
+
+typedef enum
+{
+   PSW_GPS_ASSISTANCE_DATA_ALMANAC,
+   PSW_GPS_ASSISTANCE_DATA_EPHEMERIS,
+   PSW_GPS_ASSISTANCE_DATA_LAST_LOCATION,
+   PSW_GPS_ASSISTANCE_DATA_BASE_STATION_ALMANAC,
+   PSW_GPS_ASSISTANCE_DATA_ALMANAC_CORRECTION,
+   PSW_GPS_ASSISTANCE_DATA_SV_HEALTH_INFO,
+   PSW_GPS_ASSISTANCE_DATA_NAVIGATION_MSG_BITS,
+   PSW_GPS_ASSISTANCE_DATA_ALL_GPS_DATA
+}IS801GpsResetAssistanceDataT;
+
+typedef struct
+{
+  IS801GpsResetAssistanceDataT AssisData;
+}PswGpsResetAssistMsgT;
+
+typedef struct
+{
+   kal_uint16 DataLen;
+   kal_uint8  Data[PSW_GPS7560_DATA_SIZE_MAX];
+} PswGpsNmeaStreamMsgT;
+
+typedef struct
+{
+  SysSystemTimeT  SendTime;
+} PswL1dAccessPreambleCompleteMsgT;
+
+typedef struct
+{
+  SysSystemTimeT  SendTime;
+} PswL1dAccessCompleteMsgT;
+
+typedef struct
+{
+  SysSystemTimeT  finishTime;
+} PswL1dAccessProbeCompleteMsgT;
+
+/****************/
+/* ETS Messages */
+/****************/
+
+typedef struct
+{
+   PswTestModeT Mode;                      /* Test mode */
+   kal_uint16       Enabled;                   /* Mode Qualifier, typically equivalent to ON/OFF */
+   kal_uint16       Value;                     /* Mode value*/
+} PswEngineTestModeMsgT;
+
+
+typedef struct
+{
+   kal_bool TimersUsed;                        /* Timers turned (on = KAL_TRUE) or (off = KAL_FALSE) */
+} PswTestModeTimersUsedMsgT;
+
+typedef struct
+{
+    kal_uint32            MaxCapSize;          /* System time to start sending message */
+    kal_uint16            power_correction;    /* Tx power level less mean input power */
+    kal_bool              use_curr_mip;        /* Use current mean input power or not  */
+    kal_uint8             data_len;            /* Length of data to be sent            */
+    kal_uint8             data[30];            /* l3 message data, length, data, crc   */
+    kal_bool              repeat_data;         /* Message data is repeated flag        */
+    kal_uint8             lc_mask[6];          /* Access channel long code mask        */
+    kal_uint8             pam_size;            /* Preamble size in frames              */
+    kal_uint16            RN;                  /* Random chip delay : 0 - 511          */
+} PswAccessSigMsgT;
+
+#ifdef MTK_PLT_ON_PC_UT
+/* For PSW UT   */
+typedef struct
+{
+    kal_uint8 lengthInBits;
+    kal_uint8 reverseSigData[CPBUF_SIZE_REV];
+}PswUnitTestReverseSigMsgT;
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+    kal_bool paramPsServStatusPresent;
+    kal_bool paramIratModePresent;
+    kal_bool psRegistered;
+    srlteRatTypeT c2kRatType;
+	rat_enum ratMode;
+}PswSetIratParamMsgT;
+#endif
+typedef struct
+{
+    kal_bool success;
+    kal_bool resend;
+}PswSendSmsConfirmMsgT;
+
+typedef struct
+{
+    sbp_id_enum sbpId;
+}PswSetSbpIdMsgT;
+
+#endif
+
+/* Status request message - Request current PS status */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+} PswStatusRequestMsgT;
+
+/* Status request, response */
+typedef struct
+{
+   kal_uint32   Esn;
+   kal_uint8    RFMode;
+   kal_uint8    MIN_Digits;
+   kal_uint8    Min[15];
+   kal_uint8    CPState;
+   kal_uint8    CDMAGoodFrames;
+   kal_uint16   AMPSGoodFrames;
+   kal_uint16   AMPSBadFrames;
+   kal_uint8    CPEntranceReason;
+   kal_uint16   Channel;
+   kal_uint16   PilotPN;
+   kal_uint16   CurSID;
+   kal_uint16   CurNID;
+   kal_uint16   LocAreaID;
+   kal_int16    RSSI;
+   kal_uint8    PowerLevel;
+   kal_bool     Slotted_Mode_Flag;
+} PswStatusResponseMsgT;
+
+/* Debug Pilot Strength request message */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+   kal_bool enable;
+} PswDebugPilotStrengthMsgT;
+
+typedef struct
+{
+  DebugPilotInfo *PilotReport;
+} PswDebugPilotStrengthRspMsgT;
+
+/* Debug Screen request message - Request debug screen info */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+} PswDebugScrnRequestMsgT;
+
+/* Debug Screen Response */
+typedef struct
+{
+   kal_uint16          sid;
+   kal_uint16          nid;
+   kal_uint16          badframes;
+   kal_uint16          totframes;
+   kal_uint16          ActPilotPN   [SYS_CP_MAX_ACTIVE_LIST_PILOTS];
+   kal_uint16          ActPilotEcIo [SYS_CP_MAX_ACTIVE_LIST_PILOTS];
+   kal_uint16          CandPilotPN  [SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   kal_uint16          CandPilotEcIo[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];
+   kal_uint16          NghbrPilotPN [SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];
+   kal_uint16          NghbrPilotEcIo [SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];
+   kal_int16           txPower;
+   kal_int16           rxPower;
+   kal_uint8           current_slot_cycle_index;
+   kal_bool            slotted_enabled;
+   kal_bool            qpch_enabled;
+   kal_uint8           forfchRc;
+   kal_uint8           revfchRc;
+   kal_uint16          serviceOption;
+   PswServiceT     serviceType;
+} PswDebugScrnResponseT;
+
+/* Phone State request message */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+} PswPhoneStateRequestMsgT;
+
+/* Phone State request, response */
+typedef struct
+{
+  kal_uint8       State;
+  kal_uint32      total_msg;        /* Number of paging ch messages received  */
+  kal_uint32      error_msg;        /* Number of paging ch messages with bad crc  */
+  kal_uint16      acc_1;             /* number of layer 3 requests messages generated */
+  kal_uint16      acc_2;             /* number of layer 3 response messages generated */
+  kal_uint16      acc_8;             /* number of unsuccessful access attempts        */
+  kal_uint16      dpchLoss_count;         /* Count of paging ch declared    */
+  kal_uint16      dtchLoss_count;         /* Count of dedicated traffic CH Loss*/
+  kal_uint32      idleHO_count;           /* Count of idle handoff*/
+  kal_uint16      hardHO_count;           /* Count of hard handoff*/
+  kal_uint16      interFreqIdleHO_count; /* Count of inter_Freq idle handoff*/
+  kal_uint16      MO_count;             /* Count of successful MS ORIGINATED      */
+  kal_uint16      MT_count;             /* Count of successful MS TERMINATED      */
+  kal_uint16      powerDownReg_count;  /* Count of power down registration      */
+  kal_uint16      timeBasedReg_count;  /* Count of time based registration       */
+  kal_uint16      parameterReg_count;  /* Count of parameter change registration   */
+  kal_uint16      powerUpReg_count;    /* Count of power up registration    */
+  kal_uint16      orderedReg_count;    /* Count of ordered registration     */
+  kal_uint16      zoneBasedReg_count;  /* Count of zone based registration */
+  kal_uint16      distanceBasedReg_count; /* Count of distance based registration */
+  kal_uint16      silentryRetryTimeout_count; /* Count of silentry retry timeout */
+  kal_uint16      T40_count;  /* Count of T40m timeout */
+  kal_uint16      T41_count;  /* Count of T41m timeout */
+  kal_uint16      T50_count;  /* Count of T50m timeout */
+  kal_uint16      T51_count;  /* Count of T51m timeout */
+  kal_uint16      T52_count;  /* Count of T52m timeout */
+  kal_uint16      T55_count;  /* Count of T55m timeout */
+} PswPhoneStateResponseMsgT;
+
+/* Set Retreivable Statistics Parameter Request Type */
+typedef struct
+{
+    kal_uint16  ParameterID;
+    kal_uint32 Value;
+} PswSetRetrievableParameterMsgT;
+
+/* Get Retreivable Statistics Parameter Request Type */
+typedef struct
+{
+   StatCounterT   StatCounter;         /* Statistics counter */
+} PswGetRetrievableParameterMsgT;
+
+/* Get Retreivable Statistics Parameter Response Message Type */
+typedef struct
+{
+    StatCounterT  StatCounter;         /* Statistics counter */
+    kal_uint32        Value[MAX_STAT_ELEMENT];
+} GetRetrievableParameterRspMsgT;
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+} PswGetFullSysTimeMsgT;
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;                    /* Response routing information */
+} PswGetPRevInUseRequestMsgT;
+
+typedef struct
+{
+   kal_uint8  P_Rev_In_Use;
+} PswGetPRevInUseResponseMsgT;
+
+/* aak_akey */
+#ifdef PSW_AKEY_UINT64
+typedef struct
+{
+  ExeRspMsgT  RspInfo;                    /* Response routing information */
+  kal_uint64      akey;
+  kal_uint32      checksum;
+} PswEnterAKeyMsgT;
+#else
+typedef struct
+{
+  ExeRspMsgT  RspInfo;                    /* Response routing information */
+  kal_uint32      akey_low;
+  kal_uint32      akey_high;
+  kal_uint32      checksum;
+} PswEnterAKeyMsgT;
+#endif
+
+typedef struct
+{
+   kal_uint8 NoiseFloor;
+   kal_uint8 ThrMin;
+   kal_uint8 MinAct;
+   kal_uint8 ThrSlope;
+} PswSetAccessHOParmsMsgT;
+
+typedef struct
+{
+   kal_uint8 ThrMinImmed;
+   kal_uint8 MinActImmed;
+   kal_uint8 ThrSlopeImmed;
+   kal_uint8 ThrMinDelayed;
+   kal_uint8 MinActDelayed;
+   kal_uint8 ThrSlopeDelayed;
+   kal_uint8 DelayCount;
+   kal_uint8 MinNghbrThr;
+} PswSetIdleHOParmsMsgT;
+
+typedef struct
+{
+   kal_bool PiStatus;
+} PswQpchPiStatusMsgT;
+
+typedef struct
+{
+   kal_uint8   nomPwrExt;
+   kal_int8    nomPwr;
+   kal_uint8   numPreamble;
+   kal_uint8   bandClass;
+   kal_uint16  cdmaFreq;
+   kal_uint16  pilotPN;
+   kal_uint8   codeChanFCH;
+} PswInjectHandoffMsgT;
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+typedef enum
+{
+  PSW_UI_ENCRYP_DISABLED,
+  PSW_UI_ORYX_ENABLED
+} PSW_UI_ENCRYPT_MODE_TYPE;
+
+typedef enum
+{
+   PSW_BASIC_ENCRYPT_SUPP,
+   PSW_BASIC_AND_ENHANCED_SUPP
+} PSW_ENCRYPT_MODE_TYPE;
+
+/* define set of frame sizes */
+typedef enum
+{
+   PSW_DCCH_FS_20MS = 1,          /* 20 ms frame size only         */
+   PSW_DCCH_FS_5MS = 2,           /* 5 ms frame size only          */
+   PSW_DCCH_FS_5MS_AND_20MS = 3   /* both 5 and 20 ms frame size   */
+} PSW_DCCH_FRAME_SIZE_TYPE;
+
+typedef enum
+{
+   PSW_FCH_FS_20MS = 0,
+   PSW_FCH_FS_5MS_AND_20MS = 1
+} PSW_FCH_FRAME_SIZE_TYPE;
+
+/* define set of RC settings */
+typedef enum
+{
+   PSW_FOR_RC_1 = 0x100,
+   PSW_FOR_RC_2 = 0x80,
+   PSW_FOR_RC_3 = 0x40,
+   PSW_FOR_RC_4 = 0x20,
+   PSW_FOR_RC_5 = 0x10,
+   PSW_FOR_RC_6 = 0x8,
+   PSW_FOR_RC_7 = 0x4,
+   PSW_FOR_RC_8 = 0x2,
+   PSW_FOR_RC_9 = 0x1
+} PSW_FOR_RC_TYPE;
+
+typedef enum
+{
+   PSW_REV_RC_1 = 0x20,
+   PSW_REV_RC_2 = 0x10,
+   PSW_REV_RC_3 = 0x8,
+   PSW_REV_RC_4 = 0x4,
+   PSW_REV_RC_5 = 0x2,
+   PSW_REV_RC_6 = 0x1
+} PSW_REV_RC_TYPE;
+
+/* define set of RC Preference settings */
+typedef enum
+{
+   PSW_RC_PREF_1 = 1,
+   PSW_RC_PREF_2 = 2,
+   PSW_RC_PREF_3 = 3,
+   PSW_RC_PREF_4 = 4,
+   PSW_RC_PREF_5 = 5,
+   PSW_RC_PREF_6 = 6,
+   PSW_RC_PREF_7 = 7,
+   PSW_RC_PREF_8 = 8,
+   PSW_RC_PREF_9 = 9
+} PSW_RC_PREF_TYPE;
+
+/* define set of Geo-location support */
+typedef enum
+{
+   PSW_GL_NO_SUPPORT = 0,
+   PSW_GL_AFLT = 1,
+   PSW_GL_AFLT_AND_GPS = 2,
+   PSW_GL_GPS = 3
+} PSW_GEO_LOC_TYPE;
+
+typedef enum
+{
+   PSW_GATING_RATE_SET_00  =  0x00,     /* Gating rates 1                */
+   PSW_GATING_RATE_SET_01  =  0x01,     /* Gating rates 1 and 1/2        */
+   PSW_GATING_RATE_SET_10  =  0x02,     /* Gating rates 1, 1/2 and 1/4   */
+   PSW_GATING_RATE_SET_11  =  0x03      /* reserved                      */
+} PSW_GATING_RATE_SET_TYPE;
+
+
+/* FOR SCH Multiplex options --------------------------------------- */
+typedef enum
+{
+   PSW_FOR_SCH_0x03_MUX_OPTION  = 0x0001,   /* For SCH 0x03 Mux options,  bit,   */
+   PSW_FOR_SCH_0x809_MUX_OPTION = 0x0002,   /* For SCH 0x809 Mux options, bit,   */
+   PSW_FOR_SCH_0x811_MUX_OPTION = 0x0004,   /* For SCH 0x811 Mux options, bit,   */
+   PSW_FOR_SCH_0x821_MUX_OPTION = 0x0008,   /* For SCH 0x821 Mux options, bit,   */
+   PSW_FOR_SCH_0x905_MUX_OPTION = 0x0010,   /* For SCH 0x905 Mux options, bit,   */
+   PSW_FOR_SCH_0x909_MUX_OPTION = 0x0020,   /* For SCH 0x909 Mux options, bit,   */
+   PSW_FOR_SCH_0x911_MUX_OPTION = 0x0040,   /* For SCH 0x911 Mux options, bit,   */
+   PSW_FOR_SCH_0x921_MUX_OPTION = 0x0080,   /* For SCH 0x921 Mux options, bit,   */
+
+   PSW_FOR_SCH_0x04_MUX_OPTION  = 0x0100,   /* For SCH 0x04 Mux options,  bit,   */
+   PSW_FOR_SCH_0x80a_MUX_OPTION = 0x0200,   /* For SCH 0x80a Mux options, bit,   */
+   PSW_FOR_SCH_0x812_MUX_OPTION = 0x0400,   /* For SCH 0x812 Mux options, bit,   */
+   PSW_FOR_SCH_0x822_MUX_OPTION = 0x0800,   /* For SCH 0x822 Mux options, bit,   */
+   PSW_FOR_SCH_0x906_MUX_OPTION = 0x1000,   /* For SCH 0x906 Mux options, bit,   */
+   PSW_FOR_SCH_0x90a_MUX_OPTION = 0x2000,   /* For SCH 0x90a Mux options, bit,   */
+   PSW_FOR_SCH_0x912_MUX_OPTION = 0x4000,   /* For SCH 0x912 Mux options, bit,   */
+   PSW_FOR_SCH_0x922_MUX_OPTION = 0x8000    /* For SCH 0x922 Mux options, bit,   */
+} PSW_FOR_SCH_MUX_OPTION;
+
+
+/* REV SCH Multiplex options --------------------------------------- */
+typedef enum
+{
+   PSW_REV_SCH_0x03_MUX_OPTION  = 0x0001,   /* Rev SCH 0x03 Mux options,  bit,   */
+   PSW_REV_SCH_0x809_MUX_OPTION = 0x0002,   /* Rev SCH 0x809 Mux options, bit,   */
+   PSW_REV_SCH_0x811_MUX_OPTION = 0x0004,   /* Rev SCH 0x811 Mux options, bit,   */
+   PSW_REV_SCH_0x821_MUX_OPTION = 0x0008,   /* Rev SCH 0x821 Mux options, bit,   */
+   PSW_REV_SCH_0x905_MUX_OPTION = 0x0010,   /* Rev SCH 0x905 Mux options, bit,   */
+   PSW_REV_SCH_0x909_MUX_OPTION = 0x0020,   /* Rev SCH 0x909 Mux options, bit,   */
+   PSW_REV_SCH_0x911_MUX_OPTION = 0x0040,   /* Rev SCH 0x911 Mux options, bit,   */
+   PSW_REV_SCH_0x921_MUX_OPTION = 0x0080,   /* Rev SCH 0x921 Mux options, bit,   */
+
+   PSW_REV_SCH_0x04_MUX_OPTION  = 0x0100,   /* Rev SCH 0x04 Mux options,  bit,   */
+   PSW_REV_SCH_0x80a_MUX_OPTION = 0x0200,   /* Rev SCH 0x80a Mux options, bit,   */
+   PSW_REV_SCH_0x812_MUX_OPTION = 0x0400,   /* Rev SCH 0x812 Mux options, bit,   */
+   PSW_REV_SCH_0x822_MUX_OPTION = 0x0800,   /* Rev SCH 0x822 Mux options, bit,   */
+   PSW_REV_SCH_0x906_MUX_OPTION = 0x1000,   /* Rev SCH 0x906 Mux options, bit,   */
+   PSW_REV_SCH_0x90a_MUX_OPTION = 0x2000,   /* Rev SCH 0x90a Mux options, bit,   */
+   PSW_REV_SCH_0x912_MUX_OPTION = 0x4000,   /* Rev SCH 0x912 Mux options, bit,   */
+   PSW_REV_SCH_0x922_MUX_OPTION = 0x8000    /* Rev SCH 0x922 Mux options, bit,   */
+} PSW_REV_SCH_MUX_OPTION;
+
+/* FCH & DCCH Multiplex options -------------------------------------- */
+typedef enum
+{
+   PSW_MUX_OPTION_0x1   = 0x1,
+   PSW_MUX_OPTION_0x2   = 0x2,
+   PSW_MUX_OPTION_0x704 = 0x4
+} PSW_MUX_OPTIONS_TYPES;
+
+/* define set of bitmap indicator */
+typedef enum
+{
+   PSW_SO_0_BITS = 0,
+   PSW_SO_4_BITS = 1,
+   PSW_SO_8_BITS = 2
+} PSW_SERV_OPT_BITMAP_IND;
+
+typedef enum
+{
+   PSW_CH_IND_RESERVED = 0x00,
+   PSW_CH_IND_FCH      = 0x01,
+   PSW_CH_IND_DCCH     = 0x02,
+   PSW_CH_IND_FCH_AND_DCCH = 0x03
+} PSW_CH_IND_TYPE;
+
+typedef struct
+{
+   PSW_FCH_FRAME_SIZE_TYPE  FchFrameSize;           /* FCH_FRAME_SIZE, FCH frame Size capability indicator   */
+   kal_uint8                    ForFchLen;              /* FOR_FCH_LEN, Fwd Fundemental Channel Config Info. Len */
+   kal_uint16                   ForFchRcMap;            /* FOR_FCH_RC_MAP Forward Fundemental Radio Config. Info.*/
+   kal_uint8                    RevFchLen;              /* REV_FCH_LEN, Rev Fundemental Channel Config Info. Len */
+   PSW_REV_RC_TYPE          RevFchRcMap;            /* REV_FCH_RC_MAP Reverse Fundemental Radio Config. Info.*/
+} PSW_FCH_TYPE_SPECIFIC_FIELDS_TYPE;
+
+typedef struct
+{
+   PSW_DCCH_FRAME_SIZE_TYPE DcchFrameSize;   /* DCCH_FRAME_SIZE, DCCH frame Size capability indicator */
+   kal_uint8                    ForDcchLen;      /* FOR_DCCH_LEN, Fwd Dedicated Ctrl Ch. Config Info. Len */
+   kal_uint16                   ForDcchRcMap;    /* FOR_DCCH_RC_MAP Fwd Dedicated Ch. Radio Config. Info. */
+   kal_uint8                    RevDcchLen;      /* REV_DCCH_LEN, Rev Dedicated Ctrl Ch. Config Info. Len */
+   PSW_REV_RC_TYPE          RevDcchRcMap;    /* REV_DCCH_RC_MAP Rev Dedicated Ch. Radio Config. Info. */
+} PSW_DCCH_TYPE_SPECIFIC_FIELDS_TYPE;
+
+typedef struct
+{
+   kal_uint8             ForSchLen;              /* FOR_SCH_LEN, Fwd Supplemental length in 3 bit uints   */
+   kal_uint16            ForSchRcMap;            /* FOR_SCH_RC_MAP, Fwd Supplemental Channel Radio Config Information. */
+   kal_uint8             ForSchNum;              /* FOR_SCH_NUM, Number of Forward Supplemental Cannel    */
+   kal_bool              ForTurboSupportedSch1;  /* FOR_TURBO_SUPPORTED, 1 Ch Fwd Turbo Coding Supported  */
+   kal_bool              ForTurboSupportedSch2;  /* FOR_TURBO_SUPPORTED, 2 Ch Fwd Turbo Coding Supported  */
+   kal_uint8             ForMaxTurboBlockSize;   /* FOR_MAX_TURBO_BLOCK_SIZE, Fwd Max Turbo Block Size    */
+   kal_bool              ForConvSupportedSch1;   /* FOR_CONV_SUPPORTED, 1 Ch Fwd convolutional Coding Supported */
+   kal_bool              ForConvSupportedSch2;   /* FOR_CONV_SUPPORTED, 2 Ch Fwd convolutional Coding Supported */
+   kal_uint8             ForMaxConvBlockSize;    /* FOR_MAX_CONV_BLOCK_SIZE, Fwd Max Conv. Code Block Size*/
+} PSW_FOR_SCH_TYPE_SPECIFIC_FIELDS_TYPE;
+
+typedef struct
+{
+   kal_uint8             RevSchLen;              /* REV_SCH_LEN, Rev Supplemental length in 3 bit uints   */
+   kal_uint8             RevSchRcMap;            /* REV_SCH_RC_MAP Rev Dedicated Ch. Radio Config. Info.  */
+   kal_uint8             RevSchNum;              /* REV_SCH_NUM, Number of Reverse Supplemental Cannel    */
+   kal_bool              RevTurboSupportedSch1;  /* REV_TURBO_SUPPORTED, 1 Ch Rev Turbo Coding Supported  */
+   kal_bool              RevTurboSupportedSch2;  /* REV_TURBO_SUPPORTED, 2 Ch Rev Turbo Coding Supported  */
+   kal_uint8             RevMaxTurboBlockSize;   /* REV_MAX_TURBO_BLOCK_SIZE, Rev Max Turbo Block Size    */
+   kal_bool              RevConvSupportedSch1;   /* REV_CONV_SUPPORTED, 1 Ch Rev convolutional Coding Supported */
+   kal_bool              RevConvSupportedSch2;   /* REV_CONV_SUPPORTED, 2 Ch Rev convolutional Coding Supported */
+   kal_uint8             RevMaxConvBlockSize;    /* REV_MAX_CONV_BLOCK_SIZE, Rev Max Conv. Code Block Size*/
+} PSW_REV_SCH_TYPE_SPECIFIC_FIELDS_TYPE;
+
+typedef struct
+{
+   kal_uint8             MaxMsNakRoundsFwd;      /* MAX_MS_NAK_ROUNDS_FWD Maximum number of RLP_NAK rounds
+                                                supported by the MS on the forward traffic channel    */
+   kal_uint8             MaxMsNakRoundsRev;      /* MAX_MS_NAK_ROUNDS_REV Maximum number of RLP_NAK rounds
+                                                supported by the MS on the reverse traffic channel    */
+} PSW_RLP_CAP_BLOB_LEN_TYPE;
+
+/* Status request, response */
+typedef struct
+{
+  kal_uint8 MsCapData[1];
+} PswMsCapDbWriteMsgT;
+
+typedef enum
+{
+  PSW_HSPD_CONTROL_HOLD_STATE = 0,
+  PSW_HSPD_ACTIVE_STATE = 1
+} PswHspdActiveControlHoldT;
+
+typedef struct
+{
+  PswHspdActiveControlHoldT HspdNewState;
+} PswHspdActiveControlHoldMsgT;
+
+typedef enum
+{
+  PSW_SCH_9_6_KBPS   = 0,
+  PSW_SCH_19_2_KBPS  = 1,
+  PSW_SCH_38_4_KBPS  = 2,
+  PSW_SCH_76_8_KBPS  = 3,
+  PSW_SCH_153_6_KBPS = 4,
+  PSW_SCH_307_2_KBPS = 5,
+  PSW_SCH_614_4_KBPS = 6
+} PswSchPrefRateT;
+
+typedef struct
+{
+  kal_uint8             SrId;
+  PswSchPrefRateT   PrefRate;
+  kal_uint16            Duration;
+} PswRevSchRequestMsgT;
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+typedef struct
+{
+   kal_bool   defineRcForAllSo;
+   kal_uint8  forRc;
+   kal_uint8  revRc;
+} PackedPswDefineRcT;
+#endif
+
+typedef struct
+{
+   kal_uint8  StartupActiveNam;
+   kal_uint8  PswFeatureFlags;
+   kal_uint8  PhyFeatureFlags;
+   kal_uint8  PswMiscEnableFlags;
+   kal_uint8  pendingReg;
+   kal_uint16 PrefHomeMOSO;
+   kal_uint16 PrefHomeMTSO;
+   kal_uint16 PrefRoamMOSO;
+   kal_bool   IS683NamLock;
+   kal_uint8  DfsEcIoThresh;
+   kal_uint16 qpchPilotEcIoThreshLow;
+   kal_uint16 qpchPilotEcIoThreshHigh;
+   kal_uint8  reserved_0;
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+   PackedPswDefineRcT  defineRc;
+#endif
+   kal_uint16 checksum;
+} PackedPswMiscT;
+
+/*#ifdef VERIZON_GPS_DEBUG */
+#define MAX_DEBUG_INFO 64
+#define MAX_NUM_SATELLITES 9
+
+typedef struct
+{
+  ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGpsDebugInfoCmdMsgT;
+
+typedef struct
+{
+  kal_bool   Valid;
+  kal_uint32 num_pilots_in_aflt_msg;
+  kal_uint32 SystemTime;
+  kal_uint32 LAT;
+  kal_uint32 LONG;
+  kal_uint32 FixType;
+  kal_uint8  SatelliteNumber[MAX_NUM_SATELLITES];
+} PswGpsDebugInfoRspMsgT;
+
+/*#endif */
+
+typedef enum
+{
+   ID_NOT_SET = 0,
+   ESN = 1,
+   MEID = 2,
+   UIMID = 3,
+   SF_EUIMID
+} MobileIDType;
+
+typedef enum
+{
+   PSW_SET_MBID_ELT = 0,
+   PSW_SET_MBID_AT = 1,
+   PSW_SET_MBID_META = 2,
+   PSW_SET_MBID_SYNC_FROM_IMEI = 3,
+   PSW_SET_MBID_INVALID
+} PswSetMobileIdType;
+
+typedef enum
+{
+    PSW_SET_FAILURE = 0,
+    PSW_SET_SUCCESS = 1,
+} PswSetMobileIdStatus;
+
+/* Set ESN message */
+typedef struct
+{
+   MobileIDType Id;
+   kal_uint64       value;
+} PswSetMobileIDMsgT;
+
+/* Get ESN message */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGetMobileIDMsgT;
+
+/* Verify SPC message */
+typedef struct
+{
+   kal_uint32       SPC;
+   kal_bool         reset;
+} PswVerifySPCMsgT;
+
+/* Get ESN response message */
+typedef struct
+{
+   MobileIDType Id;
+   kal_uint64       value;
+} PswGetMobileIDRspMsgT;
+
+/* Get Active NAM message */
+typedef struct
+{
+   ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGetActiveNamMsgT;
+
+/* Get Active NAM response message */
+typedef struct
+{
+  kal_uint8       CurrentActiveNam;
+} PswGetActiveNamResponseMsgT;
+
+/* Select Active NAM message */
+typedef struct
+{
+  kal_uint8       SelectActiveNam;
+} PswSelectActiveNamMsgT;
+
+typedef enum
+{
+  DUAL_NAM_NOT_SUPPORTED = 0,
+  NAM1_SELECTED          = 1,
+  NAM2_SELECTED          = 2,
+  PS_ACTIVE_NAM1_LOCKED  = 3,
+  PS_ACTIVE_NAM2_LOCKED  = 4
+} ActiveNamResultT;
+
+/* Select Active NAM response message */
+typedef struct
+{
+  kal_uint8       ActiveNamResult;
+} PswSelectActiveNamResponseMsgT;
+
+typedef struct
+{
+  kal_uint8  PWR_CNTL_STEP;
+  kal_bool   USE_TIME;
+  kal_uint8  ACTION_TIME;
+  kal_bool   FPC_INCL;
+  kal_uint8  FPC_MODE;
+  kal_bool   FPC_PRI_CHAN;
+  kal_bool   FPC_OLPC_FCH_INCL;
+  kal_uint8  FPC_FCH_FER;
+  kal_uint8  FPC_FCH_MIN_SETPT;
+  kal_uint8  FPC_FCH_MAX_SETPT;
+  kal_bool   FPC_OLPC_DCCH_INCL;
+  kal_uint8  FPC_DCCH_FER;
+  kal_uint8  FPC_DCCH_MIN_SETPT;
+  kal_uint8  FPC_DCCH_MAX_SETPT;
+  kal_bool   FPC_SEC_CHAN;
+  kal_uint8  NUM_SUP;
+  kal_bool   SCH_ID;
+  kal_uint8  FPC_SCH_FER;
+  kal_uint8  FPC_SCH_MIN_SETPT;
+  kal_uint8  FPC_SCH_MAX_SETPT;
+  kal_bool   FPC_THRESH_INCL;
+  kal_uint8  FPC_SETPT_THRESH;
+  kal_bool   FPC_THRESH_SCH_INCL;
+  kal_uint8  FPC_SETPT_THRESH_SCH;
+  kal_bool   RPC_INCL;
+  kal_uint8  RPC_NUM_REC;
+  kal_uint8  RPC_ADJ_REC_TYPE_0;
+  kal_uint8  RPC_ADJ_REC_LEN_0;
+  kal_bool   PCM_FCH_INCL;
+  kal_uint8  FCH_CHAN_ADJ_GAIN;
+  kal_bool   PCM_DCCH_INCL;
+  kal_uint8  DCCH_CHAN_ADJ_GAIN;
+  kal_bool   SCH0_INCL;
+  kal_uint8  SCH0_CHAN_ADJ_GAIN;
+  kal_bool   SCH1_INCL;
+  kal_uint8  SCH1_CHAN_ADJ_GAIN;
+  kal_uint8  RPC_ADJ_REC_TYPE_1;
+  kal_uint8  RPC_ADJ_REC_LEN_1;
+  kal_bool   RL_ATT_ADJ_GAIN_TYPE_1;
+  kal_bool   RC3_RC5_20MS_INCL_1;
+  kal_uint8  RL_ATT_ADJ_GAIN_1500;
+  kal_uint8  RL_ATT_ADJ_GAIN_2700;
+  kal_uint8  RL_ATT_ADJ_GAIN_4800;
+  kal_uint8  RL_ATT_ADJ_GAIN_9600;
+  kal_bool   RC4_RC6_20MS_INCL_1;
+  kal_uint8  RL_ATT_ADJ_GAIN_1800;
+  kal_uint8  RL_ATT_ADJ_GAIN_3600;
+  kal_uint8  RL_ATT_ADJ_GAIN_7200;
+  kal_uint8  RL_ATT_ADJ_GAIN_14400;
+  kal_bool   MS5_INCL;
+  kal_uint8  NORM_ATT_GAIN_9600_5MS;
+  kal_uint8  RPC_ADJ_REC_TYPE_2;
+  kal_uint8  RPC_ADJ_REC_LEN_2;
+  kal_bool   CODE_TYPE;
+  kal_bool   RL_ATT_ADJ_GAIN_TYPE_2;
+  kal_bool   RC3_RC5_20MS_INCL_2;
+  kal_uint8  RL_ATT_ADJ_GAIN_19200;
+  kal_uint8  RL_ATT_ADJ_GAIN_38400;
+  kal_uint8  RL_ATT_ADJ_GAIN_76800;
+  kal_uint8  RL_ATT_ADJ_GAIN_153600;
+  kal_uint8  RL_ATT_ADJ_GAIN_307200;
+  kal_uint8  RL_ATT_ADJ_GAIN_614400;
+  kal_bool   RC4_RC6_20MS_INCL_2;
+  kal_uint8  RL_ATT_ADJ_GAIN_28800;
+  kal_uint8  RL_ATT_ADJ_GAIN_576600;
+  kal_uint8  RL_ATT_ADJ_GAIN_115200;
+  kal_uint8  RL_ATT_ADJ_GAIN_230400;
+  kal_uint8  RL_ATT_ADJ_GAIN_460800;
+  kal_uint8  RL_ATT_ADJ_GAIN_1036800;
+} PswTestPowerControlMsgT;
+
+typedef struct
+{
+  ExeRspMsgT  RspInfo;
+} PswReadRawIMSIMsgT;
+
+typedef struct
+{
+  kal_uint8   ValidIMSImap;      /* bit0: IMSI_M, bit1:IMSI_T */
+  kal_uint8   M_MCC[3];          /* MCC raw digits */
+  kal_uint8   M_IMSI_11_12[2];   /* M_IMSI_11_12 raw digits */
+  kal_uint8   M_IMSI_S[10];      /* M_IMSI_S raw digits */
+  kal_uint8   M_IMSI_Class;
+  kal_uint8   M_AddrNum;
+  kal_uint8   T_MCC[3];          /* MCC raw digits */
+  kal_uint8   T_IMSI_11_12[2];   /* M_IMSI_11_12 raw digits */
+  kal_uint8   T_IMSI_S[10];      /* M_IMSI_S raw digits */
+  kal_uint8   T_IMSI_Class;
+  kal_uint8   T_AddrNum;
+  kal_uint8   Mdn[NAM_MAX_MDN_DIGITS];  /* MDN max 16 digits */
+  kal_uint8   MDN_NUM_DIGITS;           /* MDN number digits */
+  kal_uint8   ACCOLCp;           /* access overload class */
+} PswReadRawIMSIRspT;
+
+/* PSW_OOSA_WAKEUP_IND_MSG */
+typedef struct
+{
+  OosaWakeupTypeT OosaWakeupType;
+} PswOosaWakupIndMsgT;
+
+typedef struct
+{
+  kal_bool result;    /* Verify result, True:pass, False: not pass */
+} PswL1dSltTxVerifyIndMsgT;
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+typedef struct
+{
+   kal_bool isMoc ;
+} PswKeyReqMsgT;
+
+typedef struct
+{
+   kal_uint16 SeqNum;
+} PswCancelCipherSmsSendReqT;
+
+#endif
+
+typedef struct
+{
+   kal_bool  result;   /* SLT verify RF result, KAL_TRUE:success, KAL_FALSE:fail */
+} SltVerifyResultMsgT;
+
+typedef struct
+{
+  CHANNEL_DESC  Sys;
+  kal_bool      LastChannelInSRSL;
+} PswCssSelectRspMsgT;
+
+typedef enum
+{
+   CP_SYS_REJECTED,
+   CP_SYS_ACCEPTED,
+   CP_SYS_MCC_MNC_NEEDED
+} PswCssValidationRsltT;
+
+typedef enum
+{
+   CP_REG_NOT_ROAMING,
+   CP_REG_NID_ROAMING,
+   CP_REG_SID_ROAMING,
+   CP_REG_UNKNOWN_ROAMING
+} PswRegRoamStatus;
+
+typedef struct
+{
+  PswCssValidationRsltT ValidationRslt;
+  PswRegRoamStatus         RegRoamStatus;
+} PswCssValidateRspMsgT;
+
+typedef struct
+{
+   ExeRspMsgT     RspInfo;
+} PswGetNamPrefereceMsgT;
+
+typedef enum
+{
+   FORCESLEEP,
+   ACQUISITION,
+#ifdef MTK_DEV_C2K_IRAT
+   ExitPs       /* Release 1x PS during C2L MPSR */
+#endif
+} CssForceInitReasonT;
+
+typedef struct
+{
+   CssForceInitReasonT  reason;
+} PswCssSysAcqReqMsgT;
+
+typedef struct
+{
+   kal_uint16  duration;    /*in the unit of 100ms*/
+} PswCssOosaSleepReqMsgT;
+
+typedef struct
+{
+   kal_bool bActive;
+} PswRlpActivityStatusReportMsgT;
+
+/* PSW_CSS_SET_EMERGENCY_CALLBACK_MODE_MSG */
+typedef struct
+{
+  kal_bool  isInCallBackMode;
+} PswCssSetEmergencyCallbackModeMsgT;
+
+typedef enum {
+   PSW_SLOTTED_TST_MODE_VETO_FLAG  = 0x0001,  /* Test mode veto */
+   PSW_SLOTTED_PE_SMS_VETO_FLAG    = 0x0002,  /* PE SMS: disabling slotted for paging SMS activity */
+   PSW_SLOTTED_PE_SR_VETO_FLAG     = 0x0004,  /* PE Silent retry: disable slotted betwen retries */
+   PSW_SLOTTED_PE_LOC_VETO_FLAG    = 0x0008,  /* PE LOC: Loc srv activity (AFLT, ...) */
+   PSW_SLOTTED_LEC_VETO_FLAG       = 0x0010,  /* LEC: GPS activity (time sync, ...) */
+   PSW_SLOTTED_L1D_VETO_FLAG       = 0x0020,  /* L1D: bad 32k slotted veto */
+   PSW_SLOTTED_SPARE_VETO_FLAG10   = 0x0040,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG9    = 0x0080,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG8    = 0x0100,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG7    = 0x0200,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG6    = 0x0400,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG5    = 0x0800,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG4    = 0x1000,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG3    = 0x2000,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG2    = 0x4000,  /* Spare   */
+   PSW_SLOTTED_SPARE_VETO_FLAG1    = 0x8000,  /* Spare   */
+} PswSlottedVetoFlagT;
+
+typedef struct
+{
+   PswSlottedVetoFlagT  flag;
+   kal_bool                 vetoSlotted;
+} PswSlottedVetoMsgT;
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;         /* Response routing information */
+   kal_uint8       SIP_PASSWORD[HLP_MAX_PSWD_LEN];
+} PswSetSIPpasswordMsgT;
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGetSIPpasswordMsgT;
+
+typedef struct
+{
+   kal_bool        Valid;
+   kal_uint8       Pswd[HLP_MAX_PSWD_LEN];
+} PswGetSIPpasswordRspMsgT;
+
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;         /* Response routing information */
+} PswGetMIPkeysMsgT;
+
+typedef struct
+{
+   kal_bool        Valid;
+   kal_uint8       MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; /* MIP AAA Shared Secret*/
+   kal_uint8       MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE]; /* MIP HA Shared Secret  */
+} PswGetMIPkeysRspMsgT;
+
+typedef struct
+{
+   kal_uint32      SPC;
+} PswSetSPCMsgT;
+
+/* MSG_ID_PSW_VAL_SET_SO_SUPPORT_MSG */
+typedef struct
+{
+   kal_uint16 ServiceOption;
+   kal_bool   Supported;
+} PswSetSoSupportMsgT;
+
+/* Must match ETS ps_msg.txt enum
+   IP Password Update Response.
+ */
+typedef enum
+{
+   SUCCESS_0,
+   PS_NOT_POWERED_UP,
+   DATA_SERVICES_NOT_SUPPORTED,
+   MOBILE_IP_NOT_SUPPORTED,
+   PREVIOUS_WRITE_NOT_FINISHED,
+   DATA_OUT_OF_RANGE,
+   CHECKSUM_MISMATCH,
+   SECURITY_CODE_OR_SPC_MISMATCH
+   ,UICC_UPDATE_PROHIBITED
+} PswSetSecureDataRspCode;
+
+typedef struct
+{
+   kal_bool        Result;
+   PswSetSecureDataRspCode ResponseCode;
+} PswSetSecureDataRspMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+} PswGetSpcMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+} PswGetSSDMsgT;
+
+typedef struct
+{
+   kal_bool        Valid;
+   kal_uint32     SPC;
+} PswGetSpcRspMsgT;
+
+typedef struct
+{
+   kal_bool        Valid;
+   kal_uint8       SSD_A[8];
+   kal_uint8       SSD_B[8];
+} PswGetSSDRspMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+} PswGetCpBcToCdmaBcMsgT;
+
+typedef struct
+{
+   kal_uint8 namIndex;
+   kal_uint8 bandClass;
+   kal_uint32 subBandMask;
+   kal_uint8 calibTable;
+} BandInfoT;
+
+typedef struct
+{
+   kal_uint8 numBandsSupported;
+   BandInfoT bandInfo[NAM_BANDS_SUPPORTED];
+} PswGetCpBcToCdmaBcRspMsgT;
+
+/* Set Lost Scan Ping Frequency message */
+typedef struct
+{
+   kal_uint8 Geo_Scan_Ping_Frequency;
+   kal_uint8 Non_Geo_Scan_Ping_Frequency;
+} PswSetLostScanPingFrequencyMsgT;
+
+
+typedef enum
+{
+ PSW_SET_MDN_SUCCESS,
+ PSW_SET_MDN_FAIL_INVALID_CHARS,
+ PSW_SET_MDN_FAIL_INVALID_NUM_DIGITS,
+ PSW_SET_MDN_END_RESULT
+}PswSetMdnResponse;
+
+typedef enum
+{
+ PSW_SET_IMSI_SUCCESS,
+ PSW_SET_IMSI_FAIL_INVALID_CHARS = 7,
+ PSW_SET_IMSI_FAIL_INVALID_NUM_DIGITS = 13,
+ PSW_SET_IMSI_FAIL_INVALID_MCC_CHARS = 14,
+ PSW_SET_IMSI_FAIL_INVALID_IMSI_11_12_CHARS = 15,
+ PSW_SET_IMSI_END_RESULT
+}PswWriteRawImsiResponse;
+
+typedef struct
+{
+   ExeRspMsgT   RspInfo;
+   char    Mdn_Digits[NAM_MAX_MDN_DIGITS]; /* A NULL Terminated String */
+} PswWriteRawMDNMsg;
+
+typedef struct
+{
+  PswSetMdnResponse result;
+} PswSetRawMDNRspMsg;
+
+typedef struct
+{
+   kal_bool Mode;
+} PswUiccFactoryModeMsgT;
+
+typedef enum
+{
+  PSW_PARM_SET_ESN_MEID,                                 /* 0 */
+  PSW_PARM_GET_ESN_MEID,                                 /* 1 */
+  PSW_PARM_SET_SPC,                                      /* 2 */
+  PSW_PARM_GET_SPC,                                      /* 3 */
+  PSW_PARM_SET_AKEY,                                     /* 4 */
+  PSW_PARM_GET_AKEY,                                     /* 5 */
+  PSW_PARM_SET_MSID,                                     /* 6 */
+  PSW_PARM_GET_MSID,                                     /* 7 */
+  PSW_PARM_SET_PREV,                                     /* 8 */
+  PSW_PARM_GET_PREV,                                     /* 9 */
+  PSW_PARM_SET_POSITIVE_SID_NID_LIST,                    /* 10 */
+  PSW_PARM_GET_POSITIVE_SID_NID_LIST,                    /* 11 */
+  PSW_PARM_SET_NEGATIVE_SID_NID_LIST,                    /* 12 */
+  PSW_PARM_GET_NEGATIVE_SID_NID_LIST,                    /* 13 */
+  PSW_PARM_SET_PRI_SEC_CH,                               /* 14 */
+  PSW_PARM_GET_PRI_SEC_CH,                               /* 15 */
+  PSW_PARM_SET_SYSTEM_SELECT,                            /* 16 */
+  PSW_PARM_GET_SYSTEM_SELECT,                            /* 17 */
+  PSW_PARM_SET_SLOT_CYCLE_INDEX,                         /* 18 */
+  PSW_PARM_GET_SLOT_CYCLE_INDEX,                         /* 19 */
+  PSW_PARM_SET_MDN,                                      /* 20 */
+  PSW_PARM_GET_MDN,                                      /* 21 */
+  PSW_PARM_SET_PRL_ENABLE,                               /* 22 */
+  PSW_PARM_GET_PRL_ENABLE,                               /* 23 */
+  PSW_PARM_SET_HOME_SYS_REGISTRATION,                    /* 24 */
+  PSW_PARM_GET_HOME_SYS_REGISTRATION,                    /* 25 */
+  PSW_PARM_SET_FOREIGN_SID_REGISTRATION,                 /* 26 */
+  PSW_PARM_GET_FOREIGN_SID_REGISTRATION,                 /* 27 */
+  PSW_PARM_SET_FOREIGN_NID_REGISTRATION,                 /* 28 */
+  PSW_PARM_GET_FOREIGN_NID_REGISTRATION,                 /* 29 */
+  PSW_PARM_SET_ACCESS_OVERLOAD_CLASS,                    /* 30 */
+  PSW_PARM_GET_ACCESS_OVERLOAD_CLASS,                    /* 31 */
+  PSW_PARM_SET_CDMA_PREF_BAND,                           /* 32 */
+  PSW_PARM_GET_CDMA_PREF_BAND,                           /* 33 */
+  PSW_PARM_SET_CDMA_PREF_AorB,                           /* 34 */
+  PSW_PARM_GET_CDMA_PREF_AorB,                           /* 35 */
+  PSW_PARM_SET_SCM,                                      /* 36 */
+  PSW_PARM_GET_SCM,                                      /* 37 */
+  PSW_PARM_SET_PRL_INFO,                                 /* 38 */
+  PSW_PARM_GET_PRL_INFO,                                 /* 39 */
+  PSW_PARM_SET_OTAPA_ENABLE,                             /* 40 */
+  PSW_PARM_GET_OTAPA_ENABLE,                             /* 41 */
+  PSW_PARM_SET_OTA_POWERUP_MODE,                         /* 42 */
+  PSW_PARM_GET_OTA_POWERUP_MODE,                         /* 43 */
+  PSW_PARM_SET_IMSI_S1,                                  /* 44 */
+  PSW_PARM_GET_IMSI_S1,                                  /* 45 */
+  PSW_PARM_SET_IMSI_S2,                                  /* 46 */
+  PSW_PARM_GET_IMSI_S2,                                  /* 47 */
+  PSW_PARM_SET_SPC_CHANGE_ENABLE,                        /* 48 */
+  PSW_PARM_GET_SPC_CHANGE_ENABLE,                        /* 49 */
+  PSW_PARM_SET_SPASM_ENABLE,                             /* 50 */
+  PSW_PARM_GET_SPASM_ENABLE,                             /* 51 */
+  PSW_PARM_SET_SID_NID_LIST_SP,                          /* 52 */
+  PSW_PARM_GET_SID_NID_LIST_SP,                          /* 53 */
+  PSW_PARM_SET_DISTANCE_BASED_PARMS,                     /* 54 */
+  PSW_PARM_GET_DISTANCE_BASED_PARMS,                     /* 55 */
+  PSW_PARM_SET_ENCODED_MSID,                             /* 56 */
+  PSW_PARM_GET_ENCODED_MSID,                             /* 57 */
+  PSW_PARM_SET_ENABLE_OTA,                               /* 58 */
+  PSW_PARM_GET_ENABLE_OTA,                               /* 59 */
+  PSW_PARM_SET_PREF_HOME_MO_SO,                          /* 60 */
+  PSW_PARM_GET_PREF_HOME_MO_SO,                          /* 61 */
+  PSW_PARM_SET_PREF_ROAM_MO_SO,                          /* 62 */
+  PSW_PARM_GET_PREF_ROAM_MO_SO,                          /* 63 */
+  PSW_PARM_SET_PREF_HOME_MT_SO,                          /* 64 */
+  PSW_PARM_GET_PREF_HOME_MT_SO,                          /* 65 */
+  PSW_PARM_SET_UNUSED_1,                               /* 66 AVAILABLE for use */
+  PSW_PARM_GET_UNUSED_1,                               /* 67 AVAILABLE for use */
+  PSW_PARM_SET_A21_MS_SUBSCRIPTION_INFO,                 /* 68 */
+  PSW_PARM_GET_A21_MS_SUBSCRIPTION_INFO,                 /* 69 */
+  PSW_PARM_GET_SLOTTED_MODE_ALLOWED_OBSOLETE,            /* 70 */
+  PSW_PARM_SET_VOICE_SERVICE_ALLOWED,                    /* 71 */
+  PSW_PARM_GET_VOICE_SERVICE_ALLOWED,                    /* 72 */
+  PSW_PARM_SET_ROAM_SETTING_DOMESTIC_VOICE,              /* 73 */
+  PSW_PARM_GET_ROAM_SETTING_DOMESTIC_VOICE,              /* 74 */
+  PSW_PARM_SET_ROAM_SETTING_DOMESTIC_DATA,               /* 75 */
+  PSW_PARM_GET_ROAM_SETTING_DOMESTIC_DATA,               /* 76 */
+  PSW_PARM_SET_ROAM_SETTING_INTERNATIONAL_VOICE,         /* 77 */
+  PSW_PARM_GET_ROAM_SETTING_INTERNATIONAL_VOICE,         /* 78 */
+  PSW_PARM_SET_ROAM_SETTING_INTERNATIONAL_DATA,          /* 79 */
+  PSW_PARM_GET_ROAM_SETTING_INTERNATIONAL_DATA,          /* 80 */
+  PSW_PARM_SET_DDTM_MODE_ENABLED,                        /* 81 */
+  PSW_PARM_GET_DDTM_MODE_ENABLED,                        /* 82 */
+  PSW_PARM_SET_SO_SUPPORT,                               /* 83 */
+  PSW_PARM_GET_SO_SUPPORT,                               /* 84 */
+  PSW_PARM_SET_SLOTTED_MODE_ALLOWED = 85, /* for ETS compatibility with platform not having 71 to 84 in ETS definitions */
+  PSW_PARM_GET_SLOTTED_MODE_ALLOWED,
+  PSW_PARM_SET_SIM_QPCH_ENABLED,
+  PSW_PARM_GET_SIM_QPCH_ENABLED,
+  PSW_PARM_SET_DIV_SUPPORT,
+  PSW_PARM_GET_DIV_SUPPORT,
+  PSW_PARM_SET_QPCH_ENABLE_DYNAMIC_CTRL,
+  PSW_PARM_GET_QPCH_ENABLE_DYNAMIC_CTRL,
+  PSW_PARM_SET_QPCH_CCI_ENABLED,
+  PSW_PARM_GET_QPCH_CCI_ENABLED,
+  PSW_PARM_SET_1XADV_ENABLED,
+  PSW_PARM_GET_1XADV_ENABLED,
+  PSW_PARM_SET_SO73_CONTROL,
+  PSW_PARM_GET_SO73_CONTROL,
+  PSW_PARM_SET_DFS_ECIO_THRESH,
+  PSW_PARM_GET_DFS_ECIO_THRESH,
+  PSW_PARM_SET_IC_MODE,
+  PSW_PARM_GET_IC_MODE,
+  PSW_PARM_VALAT_SET_PRL_ENABLE,
+  PSW_PARM_VALAT_GET_PRL_ENABLE,
+#ifdef MTK_CBP
+  PSW_PARM_SET_ROAM_SETTING_BITMAP,          /* bitmap of all roaming setting */
+  PSW_PARM_GET_ROAM_SETTING_BITMAP,          /* bitmap of all roaming setting */
+#endif
+
+/* IMPORTANT:
+   when adding new parameters to the list, add BOTH SET and GET,
+   even if one of them is not used/implemented */
+  PSW_PARM_OPERATION_ID_END_LIST
+} PswParmOperationId;
+
+typedef enum
+{
+ PSW_PARM_OPERATION_SUCCESS,
+ PSW_PARM_OPERATION_FAIL_READ_NOT_ALLOWED,
+ PSW_PARM_OPERATION_FAIL_WRITE_NOT_ALLOWED,
+ PSW_PARM_OPERATION_NOT_ALLOWED_IN_PS_STATE,
+ PSW_PARM_OPERATION_FAIL_INVALID_PTR,
+ PSW_PARM_OPERATION_FAIL_INVALID_LENGTH,
+ PSW_PARM_OPERATION_FAIL_INVALID_AKEY_CHECKSUM,
+ PSW_PARM_OPERATION_FAIL_SET_MSID_INVALID_CHARS,
+ PSW_PARM_OPERATION_FAIL_INVALID_CHANNEL,
+ PSW_PARM_OPERATION_GENERAL_FAILURE,
+ PSW_PARM_OPERATION_FAIL_SET_MDN_INVALID_CHARS,
+ PSW_PARM_OPERATION_FAIL_SET_MDN_INVALID_NUM_DIGITS,
+ PSW_PARM_OPERATION_NO_CHANGE_IN_VALUE,
+ PSW_PARM_OPERATION_FAIL_VALUE_OUT_OF_RANGE,
+ PSW_PARM_OPERATION_FAIL_SET_MSID_INVALID_NUM_DIGITS,
+ PSW_PARM_OPERATION_FAIL_SET_MSID_INVALID_MCC_CHARS,
+ PSW_PARM_OPERATION_FAIL_SET_MSID_INVALID_IMSI_11_12_CHARS,
+ PSW_PARM_OPERATION_FAIL_PRL_INVALID,
+ PSW_PARM_OPERATION_FAIL_IMSI_DIGITS_OUT_OF_RANGE,
+ PSW_PARM_OPERATION_FAIL_OP_TYPE_NOT_SUPPORTED,
+ PSW_PARM_OPERATION_FAIL_DEFAULT_NOT_DEFINED,
+ PSW_PARM_OPERATION_FAIL_DEFAULT_NOT_SUPPORTED_FOR_PARM,
+ PSW_PARM_OPERATION_FAIL_SERVICE_OPTION_NOT_SUPPORTED,
+ PSW_PARM_OPERATION_FAIL_UICC_WRITE_ERROR,
+ PSW_PARM_OPERATION_FAIL_UICC_PARM_NOT_UPDATEABLE,
+ PSW_PARM_OPERATION_RESULT_END_LIST
+}PswParmAccessResultCode;
+
+typedef enum
+{
+  UPDATE_MSID_IMSI_M,
+  UPDATE_MSID_IMSI_T,
+  UPDATE_MSID_LIST_END
+} PswMsidFieldToUpdate;
+
+typedef enum
+{
+  PSW_PARM_ESN,
+  PSW_PARM_MEID,
+  PSW_PARM_SPC,
+  PSW_PARM_POS_SID_NID_LIST,
+  PSW_PARM_NEG_SID_NID_LIST,
+  PSW_PARM_SYSTEM_SELECT,
+  PSW_PARM_PRI_SEC_CH,
+  PSW_PARM_AKEY,
+  PSW_PARM_MSID,
+  PSW_PARM_ID_END
+} PswParmID;
+
+typedef enum
+{
+  PSW_PARM_MIN_VALUE,
+  PSW_PARM_MAX_VALUE,
+  PSW_PARM_DEFAULT_VALUE,
+  PSW_PARM_CUSTOM_VALUE,
+  PSW_PARM_OP_TYPE_LIST_END
+} PswParmOperationType;
+
+typedef struct
+{
+  kal_uint64 meid;
+  kal_uint32 esn;
+  kal_uint64 akey;
+  MobileIDType type;
+} PswEsnMeid_APIStruct;
+
+typedef struct
+{
+  kal_uint64 Akey;
+  kal_uint32 checkSum;
+} PswAkey_APIStruct;
+
+typedef struct
+{
+  kal_uint8 PRev;
+} PswPRev_APIStruct;
+
+typedef struct
+{
+  kal_uint8 SCM[NAM_BANDS_SUPPORTED];
+} PswSCM_APIStruct;
+
+typedef struct
+{
+  kal_uint16 SID[MAX_POSITIVE_SIDS];
+  kal_uint16 NID[MAX_POSITIVE_SIDS];
+  kal_uint32 max_count_in_List;
+} PswSIDNIDList_APIStruct;
+
+typedef struct
+{
+  kal_uint32 SPC;
+} PswSPC_APIStruct;
+
+typedef struct
+{
+  SystemSelectType systemSelect;
+} PswSysSelect_APIStruct;
+
+typedef struct
+{
+  kal_bool setA;
+  kal_uint16 CPC_A;
+  kal_uint16 CSC_A;
+  kal_bool setB;
+  kal_uint16 CPC_B;
+  kal_uint16 CSC_B;
+} PswPriSecCh_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate UpdateField;
+   char    Imsi_Digits[MAX_IMSI_S_DIGITS]; /* A NULL Terminated String */
+   kal_uint8   UpdateIMSI_11_12;
+   char    IMSI_11_12[MAX_MNC_DIGITS];     /* A NULL Terminated String */
+   kal_uint8   UpdateMCC;
+   char    MCC[MAX_MCC_DIGITS];            /* A NULL Terminated String */
+   kal_uint8   overwrite_mdn_with_imsi_s;
+} PswSetRawMSID_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate UpdateField;
+   char    Imsi_Digits[MAX_IMSI_S1_DIGITS]; /* A NULL Terminated String */
+} PswSetIMSIS1_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate UpdateField;
+   char    Imsi_Digits[MAX_IMSI_S2_DIGITS]; /* A NULL Terminated String */
+} PswSetIMSIS2_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate Field;
+} PswGetIMSIS12_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate Field;
+   kal_uint8    Imsi_Digits[MAX_IMSI_S1_DIGITS]; /* A NULL Terminated String */
+} PswGetIMSIS1Rsp_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate Field;
+   kal_uint8    Imsi_Digits[MAX_IMSI_S2_DIGITS]; /* A NULL Terminated String */
+} PswGetIMSIS2Rsp_APIStruct;
+
+typedef struct
+{
+  kal_uint8 PrefMode;
+} PswPrefMode_APIStruct;
+
+typedef struct
+{
+   ExeRspMsgT   RspInfo;
+   PswSetRawMSID_APIStruct RawImsi;
+} PswWriteRawIMSIMsgT;
+
+typedef struct
+{
+  PswWriteRawImsiResponse result;
+} PswSetRawIMSIRspMsg;
+
+typedef struct
+{
+   kal_uint8   ValidIMSImap;      /* bit0: IMSI_M, bit1:IMSI_T */
+   kal_uint8   M_MCC[3];          /* MCC raw digits */
+   kal_uint8   M_IMSI_11_12[2];   /* M_IMSI_11_12 raw digits */
+   kal_uint8   M_IMSI_S[10];      /* M_IMSI_S raw digits */
+   kal_uint8   M_IMSI_Class;
+   kal_uint8   M_AddrNum;
+   kal_uint8   T_MCC[3];          /* MCC raw digits */
+   kal_uint8   T_IMSI_11_12[2];   /* M_IMSI_11_12 raw digits */
+   kal_uint8   T_IMSI_S[10];      /* M_IMSI_S raw digits */
+   kal_uint8   T_IMSI_Class;
+   kal_uint8   T_AddrNum;
+   kal_uint8   Mdn[NAM_MAX_MDN_DIGITS];  /* MDN max 16 digits */
+   kal_uint8   MDN_NUM_DIGITS;           /* MDN number digits */
+   kal_uint8   ACCOLCp;           /* access overload class */
+} PswGetRawMSID_APIStruct;
+
+typedef struct
+{
+   PswMsidFieldToUpdate Field;
+} PswGetEncodedMSIDMsg_APIStruct;
+
+typedef struct
+{
+    PswMsidFieldToUpdate Field;  /*IMSI_M or IMSI_T*/
+    kal_uint16 mcc;                  /* Mobile Country Code                */
+    kal_uint8  imsi_11_12;           /* 7 bit  IMSI_11_12                  */
+    kal_uint16 imsi_s2;              /* 10 bit IMSI_S2 value               */
+    kal_uint32 imsi_s1;              /* 24 bit IMSI_S1 value               */
+    kal_uint8  imsiClass;            /* CP_IMSI_CLASS_0/1 indication       */
+    kal_uint8  addrNum;              /* number of digits in NMSI - 4       */
+} PswGetEncodedMSIDRsp_APIStruct;
+
+typedef struct
+{
+    PswMsidFieldToUpdate Field;  /*IMSI_M or IMSI_T*/
+    kal_bool   updateMcc;
+	kal_uint16 mcc;                  /* Mobile Country Code                */
+    kal_bool   updateImsi_11_12;
+    kal_uint8  imsi_11_12;           /* 7 bit  IMSI_11_12                  */
+    kal_bool   updateImsi_s2;
+    kal_uint16 imsi_s2;              /* 10 bit IMSI_S2 value               */
+    kal_bool   updateImsi_s1;
+    kal_uint32 imsi_s1;              /* 24 bit IMSI_S1 value               */
+    kal_bool   updateImsiClass;
+    kal_uint8  imsiClass;            /* CP_IMSI_CLASS_0/1 indication       */
+    kal_bool   updateAddrNum;
+    kal_uint8  addrNum;              /* number of digits in NMSI - 4       */
+} PswSetEncodedMSID_APIStruct;
+
+
+typedef struct
+{
+  kal_uint8 Slot_Cycle_Index;
+} PswSlotCycleIndex_APIStruct;
+
+typedef struct
+{
+  char Mdn_Digits[NAM_MAX_MDN_DIGITS]; /* A NULL Terminated String - Max length
+                                          of 16 */
+} PswRawMdn_APIStruct;
+
+typedef struct
+{
+  kal_bool Prl_Enable;
+} PswPrlEnable_APIStruct;
+
+typedef struct
+{
+  kal_bool Home_System_Registration;
+} PswHomeSysReg_APIStruct;
+
+typedef struct
+{
+  kal_bool Foreign_Sid_Registration;
+} PswForeignSidReg_APIStruct;
+
+typedef struct
+{
+  kal_bool Foreign_Nid_Registration;
+} PswForeignNidReg_APIStruct;
+
+typedef struct
+{
+  kal_uint8 Accolc;
+} PswAccolc_APIStruct;
+
+typedef enum
+{
+  ENG_PREF_SYS_A,
+  ENG_PREF_SYS_B,
+  ENG_PREF_SYS_A_ONLY,
+  ENG_PREF_SYS_B_ONLY,
+  CDMA_PREF_AorB_END
+} PswCdmaPrefAorB;
+
+typedef struct
+{
+  PswCdmaPrefAorB CDMAAorB;
+} PswPrefCDMA_AorB_APIStruct;
+
+typedef enum
+{
+  ENG_PREF_BAND_0,
+  ENG_PREF_BAND_1,
+  ENG_PREF_BAND_0_ONLY,
+  ENG_PREF_BAND_1_ONLY,
+  ENG_PREF_BAND_2_ONLY,
+  ENG_PREF_BAND_3_ONLY,
+  ENG_PREF_BAND_4_ONLY,
+  ENG_PREF_BAND_5_ONLY,
+  ENG_PREF_BAND_6_ONLY,
+  ENG_PREF_BAND_7_ONLY,
+  ENG_PREF_BAND_8_ONLY,
+  ENG_PREF_BAND_9_ONLY,
+  ENG_PREF_BAND_10_ONLY,
+  ENG_PREF_BAND_11_ONLY,
+  ENG_PREF_BAND_12_ONLY,
+  ENG_PREF_BAND_13_ONLY,
+  ENG_PREF_BAND_14_ONLY,
+  ENG_PREF_BAND_15_ONLY,
+  ENG_PREF_BAND_16_ONLY,
+  ENG_NO_PREF_BAND=255,
+  CDMA_PREF_BAND_END
+} PswCdmaPrefBand;
+
+typedef struct
+{
+  PswCdmaPrefBand prefBand;
+} PswPrefCDMA_Band_APIStruct;
+
+typedef struct
+{
+  kal_bool   pref_only;
+  kal_uint16 prlId;
+  kal_uint8  prl_prev;
+  kal_uint8  defaultRoamInd;
+} PswPrlInfo_APIStruct;
+
+typedef struct
+{
+  kal_bool OTAPAEnable;
+} PswOTAPAEnable_APIStruct;
+
+typedef struct
+{
+  kal_bool SPCChangeEnable;
+} PswSPCChangeEnable_APIStruct;
+
+typedef struct
+{
+  kal_bool SPASMEnable;
+} PswSPASMEnable_APIStruct;
+
+typedef struct
+{
+  kal_bool EnableOTA;
+}PswEnableOTA_APIStruct;
+
+typedef struct
+{
+  kal_uint8 Mode; /* See enum OtaCompletePowerupModeType */
+} PswOTAPowerupMode_APIStruct;
+
+typedef struct
+{
+  kal_int32 BASE_LAT_REGsp;
+  kal_int32 BASE_LONG_REGsp;
+  kal_uint16 REG_DIST_REGsp;
+} PswDistanceBasedParms_APIStruct;
+
+typedef struct
+{
+  kal_bool ValidSidNidEntry;
+  kal_uint16    sid;          /* system id                   */
+  kal_uint16    nid;          /* network id                  */
+  kal_uint16    ageTimer;     /* age limit in seconds        */
+  kal_bool      timerEnabled;
+  kal_uint8     block;        /* PCS block or serving system */
+  SysCdmaBandT bandClass;
+} PswSidNidListsp_APIStruct;
+
+
+typedef struct
+{
+  kal_uint8 Len;
+  kal_uint8 A21MsSubscriptionInfo[PSW_MAX_A21_MS_SUBS_INFO_LEN];
+} PswA21MsSubscriptionInfo_APIStruct;
+
+typedef struct
+{
+  kal_bool RoamingSetting;
+} PswRoamingSetting_APIStruct;
+
+typedef struct
+{
+  /*
+    *   ROAM_SETTING_DOMESTIC_VOICE 0x01  Sprint Allow voice roaming on domestic system
+    *   ROAM_SETTING_DOMESTIC_DATA  0x02  Sprint Allow data roaming on domestic system
+    *   ROAM_SETTING_INT_VOICE      0x04  Sprint Allow voice romaing on international system
+    *   ROAM_SETTING_INT_DATA       0x08  Sprint Allow data roaming on international system
+    *   ROAM_SETTING_LTE_DATA       0x10  Sprint Allow LTE data roaming, not used in C2K saved only for AP get */
+  kal_uint8 RoamingSettingBitMap;
+} PswRoamingSettingBitMap_APIStruct;
+
+typedef struct
+{
+  kal_uint16 ServiceOption;
+  kal_bool   Supported;
+} PswSOSupport_APIStruct;
+
+typedef struct
+{
+  kal_uint16 ServiceOption;
+} PswGetSOSupport_APIStruct;
+
+typedef enum
+{
+   DIV_OFF,
+   DIV_ON_DYNAMIC,
+   DIV_UNDEFINED,
+   DIV_ON_STATIC
+}PswPhyDiversityModeT; /* must map into DSPM API IC Mode */
+
+typedef struct
+{
+  PswPhyDiversityModeT   EnabledDiv;
+} PswDivSupport_APIStruct;
+
+typedef struct
+{
+  kal_bool SO73Enabled;
+  kal_bool SO73WBEnabled;
+} PswSO73Control_APIStruct;
+
+typedef struct
+{
+  kal_bool   Cdma1xAdvEnabled;
+} Psw1xAdvEnabled_APIStruct;
+
+typedef struct
+{
+  kal_uint8 Strength;
+} PswDfsEcIoThresh_APIStruct;
+
+typedef enum
+{
+   IC_NORMAL,
+   IC_DBG_SRCH_DLY,
+   IC_DBG_IC_DLY,
+   IC_DBG_BYPASS,
+   IC_OFF = 0xF
+}PswPhyICModeT; /* must map into DSPM API IC Mode */
+
+typedef struct
+{
+  PswPhyICModeT  ICMode;
+} PswPhyICMode_APIStruct;
+typedef enum
+{
+   MS_MODE_UNKNOWN,
+   MSA,
+   MSB,
+   MSS,
+   /*ControlPlane=4 is changed to ControlPlne=8, for klocwork warning,corresponding to ValGpsFixModeT*/
+   ControlPlane=8,
+   SUPL_MSA,
+   SUPL_MSB,
+}GPS_FIX_MODE;
+
+typedef struct
+{
+    kal_uint32  InstanceID;
+    GPS_FIX_MODE FixMode;
+    kal_uint32  NumFixes;
+    kal_uint32  TimeBFixes;
+    kal_uint32  HorizontalAccuracy;
+    kal_uint32  VerticalAccuracy;
+    kal_uint32  PseudorangeAccuracy;
+    kal_bool    OnCTNtwk;
+#ifdef MTK_DEV_GPSONE_ON_LTE
+    kal_int32   RatMode;
+#endif
+    kal_uint32  Performance;
+    kal_uint8   GpsMode;
+    kal_uint8   flag_gps;    //0--AP, 1--3rd,  2--others
+} PswIs801SessionStartMsgT;
+
+typedef struct
+{
+   kal_uint32 InstanceID;
+   kal_uint8     flag_gps;    //0--AP, 1--3rd,  2--others
+}PswIs801SessCancelReqMsgT;
+
+typedef struct
+{
+   kal_uint32 Index;
+}PswIs801TimerExpMsgT;
+
+typedef struct
+{
+   kal_bool Success;
+}PswIs801TcpConnStatusMsgT;
+
+typedef struct
+{
+   kal_uint32 EphSysTime;
+   kal_uint32 AlmSysTime;
+   kal_uint32 EphTimeInterval;
+   kal_uint32 AlmTimeInterval;
+}PswIs801EphAlmSystimeMsgT;
+
+typedef struct
+{
+   kal_uint32 InstanceID;
+}PswIs801MssDoneMsgT;
+
+typedef struct
+{
+   kal_uint8 enable;
+}PswIs801NmeaOutputSettingMsgT;
+
+typedef struct
+{
+   kal_uint8 Conn;
+   kal_uint32 InstID;
+}PswIs801MpcConnStatusMsgT;
+
+typedef struct
+{
+   kal_uint8 CustomerId;
+}PswIs801CustomerSettingMsgT;
+
+typedef struct
+{
+   kal_uint16 refPn;
+   kal_uint32 refTime;
+   kal_uint16 timeOffset;
+}PswLecSessionEndRspMsgT;
+
+typedef struct
+{
+   kal_uint16 PrefHomeMOServiceOption;
+}PswPrefHomeMOSO_APIStruct;
+
+typedef struct
+{
+   kal_uint16 PrefRoamMOServiceOption;
+}PswPrefRoamMOSO_APIStruct;
+
+typedef struct
+{
+   kal_uint16 PrefHomeMTServiceOption;
+}PswPrefHomeMTSO_APIStruct;
+
+
+typedef struct
+{
+   kal_bool isVoiceServiceAllowed;
+} PswVoiceMode_APIStruct;
+
+typedef struct
+{
+   kal_bool isDdtmEnabled;
+} PswDdtmEnable_APIStruct;
+
+typedef struct
+{
+   kal_bool Enabled;
+} PswFeatureEnabled_APIStruct;
+
+typedef struct
+{
+   kal_bool   Enabled;
+   kal_uint16 ThreshLow;
+   kal_uint16 ThreshHigh;
+} PswQpchEnableDynamicCtrl_APIStruct;
+
+#ifdef FIELD_TEST_DATA
+
+typedef struct
+{
+  kal_uint16  SchMux;
+  kal_uint8   SchRc;
+  kal_uint8   SchStatus;
+  kal_uint16  SchDuration;
+  kal_uint8   SchRate;
+} PswSchCcT;
+
+typedef struct
+{
+  kal_uint8       cpState;          /*CP state*/
+  kal_uint16      channel;          /* Current channel number */
+  kal_uint16      bandClass;        /* Current band class  */
+  kal_uint16      pilotPNOffset;    /* Pilot PN offset  */
+  kal_uint8       pageChannel;      /* Current page channel Walsh code*/
+  kal_uint8       pageChanRate;     /*page channel rate, 0 is full rate(9600), 1 is half rate(4800)*/
+  kal_uint8       block;             /* Current CDMA block */
+  kal_uint16      sid;                /* System ID */
+  kal_uint16      nid;                /* Network ID */
+  kal_uint8       SysDetIndication; /* Reason for entering System Determination */
+  kal_uint8       roam;              /* Roam status */
+  kal_uint16      baseId;            /* Base station ID */
+  kal_uint16      regZone;           /* registration zone  */
+  kal_uint32      baseLat;           /* latitude from base last registered on    */
+  kal_uint32      baseLong;          /* longitude from base last registered on   */
+  kal_uint8       P_REV;             /* Protocol Revision Level (from Sync Channel Message)*/
+  kal_uint8       MIN_P_REV;         /* Minimum protocol revision required by MS (from Sync Channel Message)*/
+  kal_uint8       networkPrefSCI;   /* max slot cycle index value */
+  kal_bool        slotMode;          /* slotted Mode (Enabled Or Disable) */
+  kal_bool        qpchMode;          /* qpch Mode (Enabled Or Disable) */
+  kal_uint16      mcc;               /* Mobile Country Code (from extended system parameter message)*/
+  kal_uint8       imsi_11_12;        /* Mobile Network Code (from extended system parameter message)*/
+  kal_uint8       SSPR_P_REV_INUSE;  /* Current PRL Protocol Revision */
+
+  kal_uint8       currentPacketZoneID; /* Current packet zone ID */
+  kal_uint16      serviceOption;    /* Current Service Option */
+  PswSchCcT   forSch0Cc;        /* Channel configuration of forward supplement channel */
+  PswSchCcT   revSch0Cc;        /* channel configuration of reverse supplement channel */
+
+  kal_int16       rxPower;          /* Rx power */
+  kal_int16       txPower;          /* Tx power */
+  kal_uint16      pilotPN[SYS_CP_MAX_ACTIVE_LIST_PILOTS];   /* Pilot PN of the list in active set */
+  kal_uint16      pilotEcIo[SYS_CP_MAX_ACTIVE_LIST_PILOTS]; /* Pilot Ec/Io of the list in active set */
+  kal_uint16      pilotPhase[SYS_CP_MAX_ACTIVE_LIST_PILOTS]; /* Pilot phase of the list in active set*/
+  kal_uint8       numInActiveSet;  /* Number of records in active set */
+  kal_uint16      candPilotPN[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];   /* Pilot PN of the list in candidate set */
+  kal_uint16      candPilotEcIo[SYS_CP_MAX_CANDIDATE_LIST_PILOTS]; /* Pilot Ec/Io of the list in candidate set */
+  kal_uint16      candPilotPhase[SYS_CP_MAX_CANDIDATE_LIST_PILOTS]; /* Pilot phase of the list in candidate set*/
+  kal_uint8       numInCandSet;  /* Number of records in candidate set */
+  kal_uint16      nghbrPilotPN[SYS_CP_MAX_NEIGHBOR_LIST_PILOTS];   /* Pilot PN of the list in neighbor set */
+  kal_uint16      nghbrPilotEcIo[SYS_CP_MAX_NEIGHBOR_LIST_PILOTS]; /* Pilot Ec/Io of the list in neighbor set */
+  kal_uint16      nghbrPilotPhase[SYS_CP_MAX_NEIGHBOR_LIST_PILOTS]; /* Pilot phase of the list in neighbor set*/
+  kal_uint8       numInNghbrSet;  /* Number of records in neighbor set */
+  kal_uint16      FER;                      /* Frame Error Rate per thousand */
+  kal_uint16      TxAdj;              /* Adjust gain of the Tx power */
+
+  kal_uint32      total_msg;        /* Number of paging ch messages received  */
+  kal_uint32      error_msg;        /* Number of paging ch messages with bad crc  */
+  kal_uint16      acc_1;             /* number of layer 3 requests messages generated */
+  kal_uint16      acc_2;             /* number of layer 3 response messages generated */
+  kal_uint16      acc_8;             /* number of unsuccessful access attempts        */
+
+  kal_uint16      dpchLoss_count;         /* Count of paging ch declared    */
+  kal_uint16      dtchLoss_count;         /* Count of dedicated traffic CH Loss*/
+  kal_uint32      idleHO_count;           /* Count of idle handoff*/
+  kal_uint16      hardHO_count;           /* Count of hard handoff*/
+  kal_uint16      interFreqIdleHO_count; /* Count of inter_Freq idle handoff*/
+  kal_uint16      MO_count;             /* Count of successful MS ORIGINATED      */
+  kal_uint16      MT_count;             /* Count of successful MS TERMINATED      */
+  kal_uint16      powerDownReg_count;  /* Count of power down registration      */
+  kal_uint16      timeBasedReg_count;  /* Count of time based registration       */
+  kal_uint16      parameterReg_count;  /* Count of parameter change registration   */
+  kal_uint16      powerUpReg_count;    /* Count of power up registration    */
+  kal_uint16      orderedReg_count;    /* Count of ordered registration     */
+  kal_uint16      zoneBasedReg_count;  /* Count of zone based registration */
+  kal_uint16      distanceBasedReg_count; /* Count of distance based registration */
+  kal_uint16      silentryRetryTimeout_count; /* Count of silentry retry timeout */
+  kal_uint16      T40_count;  /* Count of T40m timeout */
+  kal_uint16      T41_count;  /* Count of T41m timeout */
+  kal_uint16      T50_count;  /* Count of T50m timeout */
+  kal_uint16      T51_count;  /* Count of T51m timeout */
+  kal_uint16      T52_count;  /* Count of T52m timeout */
+  kal_uint16      T55_count;  /* Count of T55m timeout */
+
+  kal_uint16      T_ADD;
+  kal_uint16      T_DROP;
+  kal_uint16      T_COMP;
+  kal_uint16      T_tDROP;
+ }PswFTDParaT;
+#endif
+
+#ifdef MTK_DEV_ENGINEER_MODE
+/* This structure is defined for Engineer mode developement, all items in it is 1xEV-DO related and needs to be reported to AP.*/
+typedef struct
+{
+  kal_uint8       bandClass;  /* 1xEV-DO current band class. */
+  kal_uint16      channel;  /* 1xEV-DO current channel number. */
+  kal_uint16      pilotPN;  /* 1xEV-DO  pilot PN. */
+  kal_uint8       phySubtype;  /* 1xEV-DO phy subtype. */
+  double      rssi_dbm;  /* 1xEV-DO RSSI_dbm.  */
+  kal_uint8       sectorID[16];  /* 1xEV-DO Sector ID. */
+  kal_uint8       subnetMask;  /* 1xEV-DO subnetmask. */
+  kal_uint8       colorCode;  /* 1xEV-DO color Code. */
+  kal_uint8       uati[16];  /* 1xEV-DO UATI 024. */
+  kal_uint8       pilotInc;  /* 1xEV-DO pilotInc. */
+  kal_uint8       activeSetSchWin;  /* 1xEV-DO activeSet Search Window. */
+  kal_uint8       neighborSetSchWin;  /* 1xEV-DO neighborSet Search Window. */
+  kal_uint8       remainSetSchWin;  /* 1xEV-DO remainSet Search Window. */
+  kal_uint8       sameFreq_T_ADD;  /* 1xEV-DO T_ADD with same channel. */
+  kal_uint8       sameFreq_T_DROP;  /* 1xEV-DO T_DROP with same channel. */
+  kal_uint8       sameFreq_T_tDROP;  /* 1xEV-DO T_tDROP with same channel. */
+  kal_uint8       diffFreq_T_ADD;  /* 1xEV-DO T_ADD with different channel. */
+  kal_uint8       diffFreq_T_DROP;  /* 1xEV-DO T_DROP with different channel. */
+  kal_uint8       diffFreq_T_tDROP;  /* 1xEV-DO T_tDROP with different channel. */
+
+  kal_uint8       numInActiveSet;  /* 1xEV-DO active set number. */
+  kal_uint16      activePilotPN[SYS_CP_MAX_ACTIVE_LIST_PILOTS];  /* 1xEV-DO activePilotPN. */
+  kal_int16       activePilotEcIo[SYS_CP_MAX_ACTIVE_LIST_PILOTS];  /* 1xEV-DO activePilotEcIo. */
+  kal_uint8       activeDrcCover[SYS_CP_MAX_ACTIVE_LIST_PILOTS];  /* 1xEV-DO activeDrcCover. */
+
+  kal_uint8       numInCandSet;  /* 1xEV-DO candidate set number. */
+  kal_uint8       candBand[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];  /* 1xEV-DO band of candidate set.  */
+  kal_uint16      candChannel[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];  /* 1xEV-DO channel of candidate set. */
+  kal_uint16      candPilotPN[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];  /* 1xEV-DO pilotPN of candidate set. */
+  kal_int16       candPilotEcIo[SYS_CP_MAX_CANDIDATE_LIST_PILOTS];  /* 1xEV-DO pilotEcIo of candidate set. */
+
+  kal_uint8       numInNghbrSet;  /* 1xEV-DO neighbor set numer.  */
+  kal_uint8       nghbrBand[SYS_MAX_NEIGHBOR_LIST_PILOTS];  /* 1xEV-DO band of neighbor set. */
+  kal_uint16      nghbrChannel[SYS_MAX_NEIGHBOR_LIST_PILOTS];  /* 1xEV-DO channel of neighbor set. */
+  kal_uint16      nghbrPilotPN[SYS_MAX_NEIGHBOR_LIST_PILOTS];  /* 1xEV-DO pilotPN of neighbor set. */
+  kal_int16       nghbrPilotEcIo[SYS_MAX_NEIGHBOR_LIST_PILOTS];  /* 1xEV-DO pilotEcIo of neighbor set. */
+
+  kal_int32       c_i;  /* 1xEV-DO C/I.  */
+  kal_uint8       drcAverageValue;  /* 1xEV-DO drcAverageValue. */
+  kal_uint32      ftcCrcErrorCount;  /* 1xEV-DO ftcCrcErrorCount. */
+  kal_uint32      ftcTotalCount;  /* 1xEV-DO ftcTotalCount. */
+  kal_uint8       syncCrcErrorRatio;  /* 1xEV-DO syncCrcErrorRatio. */
+
+  kal_uint16      averageTbsize;  /* 1xEV-DO averageTbsize. */
+  kal_uint32      rtcRetransmitCount;  /* 1xEV-DO rtcRetransmitCount. */
+  kal_uint32      rtcTransmitTotalCount;  /* 1xEV-DO rtcTransmitTotalCount. */
+  kal_int16       txPower;  /* 1xEV-DO txPower.*/
+  kal_int16       pilotPower;  /* 1xEV-DO pilotPower. */
+  kal_uint8       rab_1_ratio;  /* 1xEV-DO rab_1_ratio. */
+
+  kal_uint8       sessionState;  /* 1xEV-DO Session state. */
+  kal_uint8       atState;  /* 1xEV-DO AT state. */
+  kal_uint8       almpState;  /* 1xEV-DO ALMP state. */
+  kal_uint8       inspState;  /* 1xEV-DO INSP state. */
+  kal_uint8       idpState;  /* 1xEV-DO IDP state. */
+  kal_uint8       ompState;  /* 1xEV-DO OMP state. */
+  kal_uint8       cspState;  /* 1xEV-DO CSP state. */
+  kal_uint8       rupState;  /* 1xEV-DO RUP state. */
+}PswFTDDoParaT;
+#endif
+
+MobileIDType ValGetMobileIdType(void);
+/**********MS-Based*********************/
+typedef struct _GPS_POSITION_ERROR {
+kal_uint32	dwHorizontalErrorAlong;
+kal_uint32 dwHorizontalErrorAngle;
+kal_uint32 dwHorizontalErrorPerp;
+kal_uint32 dwVerticalError;
+kal_uint32 dwHorizontalConfidence;
+} GPS_POSITION_ERROR,*PGPS_POSITION_ERROR;
+
+typedef enum
+{
+	GPS_FIX_INVALID,
+	GPS_FIX_NORMAL,
+GPS_FIX_DIEF
+} GPS_FIX_QUALITY;
+
+
+
+typedef enum
+{
+   GPS_FIX_NONE,
+   GPS_FIX_ESTIMATED,
+   GPS_FIX_2D,
+   GPS_FIX_DIFF_2D,
+   GPS_FIX_3D,
+   GPS_FIX_DIFF_3D
+
+}  GPS_FIX_TYPE;
+
+
+typedef enum
+{
+	GPS_FIX_3D_AUTO,
+	GPS_FIX_2D_MANU
+}GPS_FIX_SELECTION;
+
+
+typedef  struct GPS_Nav_Data_Struct   /*GN GPS Navigation solution data*/
+{
+   kal_uint32 Local_TTag;             /* Local receiver time-tag since start-up [msec]*/
+   kal_uint32 OS_Time_ms;             /* Local Operating System Time [msec]*/
+   kal_uint16 Year;                   /* UTC Year A.D.                     [eg 2006]*/
+   kal_uint16 Month;                  /* UTC Month into the year           [range 1..12]*/
+   kal_uint16 Day;                    /* UTC Days into the month           [range 1..31]*/
+   kal_uint16 Hours;                  /* UTC Hours into the day            [range 0..23]*/
+   kal_uint16 Minutes;                /* UTC Minutes into the hour         [range 0..59]*/
+   kal_uint16 Seconds;                /* UTC Seconds into the hour         [range 0..59]*/
+   kal_uint16 Milliseconds;           /* UTC Milliseconds into the second  [range 0..999]*/
+   signed short Gps_WeekNo;             /* GPS Week Number*/
+#if !(defined(MTK_PLT_ON_PC) && defined(MTK_PLT_ON_PC_UT))
+   double Gps_TOW;                /* Corrected GPS Time of Week [seconds]*/
+   double UTC_Correction;         /* Current (GPS-UTC) time difference [seconds]*/
+   double X;                      /* WGS84 ECEF X Cartesian coordinate [m]*/
+   double Y;                      /* WGS84 ECEF Y Cartesian coordinate [m]*/
+   double Z;                      /* WGS84 ECEF Z Cartesian coordinate [m]*/
+   double Latitude;               /* WGS84 Latitude  [degrees, positive North]*/
+   double Longitude;              /* WGS84 Longitude [degrees, positive East]*/
+#else
+    float Gps_TOW;                /* Corrected GPS Time of Week [seconds]*/
+    float UTC_Correction;         /* Current (GPS-UTC) time difference [seconds]*/
+    float X;                      /* WGS84 ECEF X Cartesian coordinate [m]*/
+    float Y;                      /* WGS84 ECEF Y Cartesian coordinate [m]*/
+    float Z;                      /* WGS84 ECEF Z Cartesian coordinate [m]*/
+    float Latitude;               /* WGS84 Latitude  [degrees, positive North]*/
+    float Longitude;              /* WGS84 Longitude [degrees, positive East]*/
+#endif
+   float Altitude_Ell;           /* Altitude above WGS84 Ellipsoid [m]*/
+   float Altitude_MSL;           /* Altitude above Mean Sea Level [m]*/
+   float SpeedOverGround;        /* 2-dimensional Speed Over Ground [m/s]*/
+   float CourseOverGround;       /* 2-dimensional Course Over Ground [degrees]*/
+   float VerticalVelocity;       /* Vertical velocity [m/s]*/
+   float N_AccEst;               /* Northing 1-sigma (67%) Accuracy estimate [m]*/
+   float E_AccEst;               /* Easting  1-sigma (67%) Accuracy estimate [m]*/
+   float V_AccEst;               /* Vertical 1-sigma (67%) Accuracy estimate [m]*/
+   float H_AccMaj;               /* Horizontal error ellipse semi-major axis [m]*/
+   float H_AccMin;               /* Horizontal error ellipse semi-minor axis [m]*/
+   float H_AccMajBrg;            /* Bearing of the semi-major axis [degrees]*/
+   float HVel_AccEst;            /* Horizontal Velocity 1-sigma (67%) Accuracy estimate [m/s]*/
+   float VVel_AccEst;            /* Vertical Velocity 1-sigma (67%) Accuracy estimate [m/s]*/
+   float PR_ResRMS;              /* Standard dev of the PR a posteriori residuals [m]*/
+   float H_DOP;                  /* Horizontal Dilution of Precision*/
+   float V_DOP;                  /* Vertical Dilution of Precision*/
+   float P_DOP;                  /* 3-D Position Dilution of Precision*/
+
+   GPS_FIX_TYPE        FixType; /* Position fix type*/
+  kal_bool Valid_2D_Fix;           /* Is the published 2D position fix "valid"*/
+                              /*    relative to the required Horizontal*/
+                              /*    accuracy masks ?*/
+   kal_bool Valid_3D_Fix;           /* Is the published 3D position fix "valid"*/
+                              /*    relative to both the required Horizontal*/
+                              /*    and Vertical accuracy masks ?*/
+   unsigned char  FixMode;                /* Solution Fixing Mode*/
+                              /*    1 = Forced 2-D at MSL,*/
+                              /*    2 = 3-D, with automatic fall back to 2-D*/
+
+   unsigned char  SatsInView;             /* Satellites in View count*/
+   unsigned char  SatsUsed;               /* Satellites in Used for Navigation count*/
+
+   unsigned char  SatsInViewSVid[NMEA_SV];/* Satellites in View SV id number [PRN]*/
+   unsigned char  SatsInViewSNR[NMEA_SV]; /* Satellites in Signal To Noise Ratio [dBHz]*/
+   unsigned char  SatsInViewJNR[NMEA_SV]; // Satellites in View Jammer to Noise Ratio [dBHz]
+   kal_uint16 SatsInViewAzim[NMEA_SV];/* Satellites in View Azimuth [degrees]*/
+   signed char  SatsInViewElev[NMEA_SV];/* Satellites in View Elevation [degrees]*/
+                              /*    if = -99 then Azimuth & Elevation angles*/
+                              /*         are currently unknown*/
+   kal_bool SatsInViewUsed[NMEA_SV];/* Satellites in View Used for Navigation ?*/
+
+} s_GPS_Nav_Data;          /* GN GPS Navigation solution data*/
+
+
+
+typedef  struct
+{
+	kal_bool MSBFix;
+	s_GPS_Nav_Data GPS_NAV_Data;
+}PswLocRspDataT;
+
+
+
+
+typedef enum
+{
+GPSENG_FIX_NOT_VALID,
+GPSENG_FIX_ESTIMATED,
+GPSENG_FIX_2D,
+GPSENG_FIX_3D,
+GPSENG_FIX_DGPS_2D,
+GPSENG_FIX_DGPS_3D
+} PswGpsEngFixTypeT;
+
+typedef struct
+{
+kal_bool	Used;
+kal_uint8	Id;
+kal_uint8	Cn0;
+kal_int8	Elev;
+kal_uint16	Azimuth;
+} PswGpsEngSvInViewT;
+
+typedef struct {
+PswGpsEngFixTypeT     FixType;
+kal_uint32	OsTime;
+kal_uint32	LocalTimeTag;
+kal_uint16	UtcYear;
+	kal_uint16	UtcMonth;
+kal_uint16	UtcDay;
+kal_uint16	UtcHour;
+	kal_uint16	UtcMin;
+kal_uint16	UtcSec;
+kal_uint16	UtcMilliSec;		/* UTC Millisec into Sec */
+kal_uint16	WeekNo;
+kal_uint32	Tow;			/* milliseconds */
+	kal_uint8	UtcDifference;		/* (GPS-UTC) seconds */
+	double	Lat;
+	double Long;
+	double	AltitudeMSL;		/* Mean Sea level */
+	double AltitudeElli;		/* ? */
+	double	X;
+	double Y;
+double	Z;
+	float	SpeedGround;
+	float	CourseGround;
+	float	VerticalVelocity;	/* Vertical velocity */
+float	LocUncAng;		/* Location uncertainty angle */
+	float	LocUncA;		/* ? */
+float	LocUncP;
+float	LocUncV;
+float	VelHUnc;		/* Horizontal Velocity RMS 1-sigma (67%) Accuracy estimate */
+float	VelVUnc;		/* Vertical Velocity RMS 1-sigma (67%) Accuracy estimate */
+float	Pdop;
+float	Hdop;
+float	Vdop;
+kal_uint8	SvInViewNum;
+kal_uint8	SvUsed;
+PswGpsEngSvInViewT  SvInView[MAX_SVINVIEW];
+} PswGpsEngWholeNavDataMsgT;
+
+
+
+
+
+/*MS-Based*/
+
+typedef struct
+{
+kal_bool GpsSysReady;
+
+}LecGpsSysReadyT;
+
+typedef struct
+{
+	kal_bool  Ref_Time_Req;
+	kal_bool  Ref_Pos_Req;
+	kal_bool  Ion_Req;
+	kal_bool  UTC_Req;
+	kal_bool  SV_Health_Req;
+	kal_bool  Bad_SV_List_Req;
+	kal_bool  Alm_Req;
+	kal_bool  Eph_Req;
+
+}PswAssistReqT;
+
+typedef struct
+{
+   ExeRspMsgT  rspInfo;
+   kal_uint32 InstanceID;
+   kal_uint8 mode;
+}PswValRestartMsgT;
+
+typedef enum
+{
+    PSW_LOC_HOT_START  = 1,
+    PSW_LOC_WARM_START,
+    PSW_LOC_COLD_START
+}PswLocStartMode;
+
+typedef struct
+{
+    PswLocStartMode startMode;
+}PswLocStartModeSetMsgT;
+
+typedef struct
+{
+    ExeRspMsgT  oldRspInfo;
+}PswValLocFixModeGetMsgT;
+
+typedef struct
+{
+    GPS_FIX_MODE FixMode;
+    ExeRspMsgT  oldRspInfo;
+}PswValLocFixModeGetRspMsgT;
+
+typedef struct
+{
+  kal_uint16 PrefHomeMOServiceOption;
+  kal_uint16 PrefHomeMTServiceOption;
+  kal_uint16 PrefRoamMOServiceOption;
+} PswValPrefVoiceServiceOptionMsgT;
+
+typedef struct
+{
+  kal_bool SlottedModeAllowed;
+} PswSlottedModeAllowed_APIStruct;
+
+typedef struct
+{
+  kal_uint8 Mode; /* 0=Stop/Disable, 0xFF=report on thresholds/state transition only */
+              /* other values = frequency of reporting when below low thresh in  */
+              /* units of about 200 ms (i.e set to 5 for 1 sec reporting)        */
+} PswSetTransmitInfoMsgT;
+
+typedef enum
+{
+  TRANS_INFO_IDLE, /* Stopped transmitting */
+  TRANS_INFO_ACCESS, /* Transmitting on access channel */
+  TRANS_INFO_TRAFFIC /* Transmitting on traffic channel */
+} TransInfoState;
+
+typedef struct
+{
+  TransInfoState State; /* Fer is not valid in TRANS_INFO_ACCESS state */
+  SysCdmaBandT Band; /* Current CDMA band class */
+  kal_uint16 Channel; /* Current CDMA channel number */
+  kal_int16 Rssi; /* Receive signal level dBm */
+  kal_uint8 PilotEcIo; /* Pilot energy to total receive power 1/8 unit dB */
+  kal_int16 TxPwr; /* Transmit Power dBm */
+  kal_uint16 TotalFrames;
+  kal_uint16 BadFrames;
+} PswGetTransmitInfoRspMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+   SysCdmaBandT band;
+   kal_uint16 channel;
+   kal_uint8  codeChan;
+   /* CDMA Radio configuration,1 is RC1, 2 is RC2 Etc*/
+   kal_uint8  radioConfig;
+   kal_uint16 numFrames;
+   kal_bool   enableAFC;
+} PswNstPowerupMsgT;
+
+typedef struct
+{
+   SysCdmaBandT   band;
+   kal_uint16     channel;
+   kal_uint16     numFrames;
+   kal_bool       enableAFC;
+} PswNstTchFerCfgMsgT;
+
+
+#define MAX_NST_ACK_CHAR  3
+typedef struct
+{
+   char ackResponse[MAX_NST_ACK_CHAR];
+} PswNstPowerupAckRspMsgT;
+
+typedef struct
+{
+   kal_uint16 badFrames;
+   kal_uint16 totalFrames;
+} PswNstPowerupRspMsgT;
+
+typedef struct
+{
+   kal_uint16 badFrames;
+   kal_uint16 totalFrames;
+} PswNstTchFerCfgCnfMsgT;
+
+
+typedef struct
+{
+   SysCdmaBandT   band;
+   kal_uint16     channel;
+   kal_uint8      fwdRc;
+   kal_int16      txPwr;    /**Unit is Q6*/
+} PswNstTransmitTchMsgT;
+
+
+typedef struct
+{
+   SysCdmaBandT   band;
+   kal_uint16     channel;
+   kal_bool       txPwrQ6;
+} PswNstTxPwrMeasCfgMsgT;
+
+
+typedef struct
+{
+   char ackResponse[MAX_NST_ACK_CHAR];
+} PswNstTransmitTchAckMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+} PswNstExitMsgT;
+
+#define MAX_NUM_LISTS         50
+#define MAX_NUM_RSSI_LEVEL    20
+#define MAX_NUM_TX_PWR_LEVEL  20
+
+typedef struct
+{
+   kal_uint8   count;  /* Total of list */
+   kal_uint8   offset[MAX_NUM_LISTS];   /* Num of frame offset */
+   kal_uint16  band[MAX_NUM_LISTS];
+   kal_uint16  channel[MAX_NUM_LISTS];
+   kal_uint8   codeChan[MAX_NUM_LISTS];
+   /* CDMA Radio configuration,1 is RC1, 2 is RC2 Etc*/
+   kal_uint8   radioConfig[MAX_NUM_LISTS];
+   kal_uint16  numFrames[MAX_NUM_LISTS];
+   kal_uint8   txPwrCount[MAX_NUM_LISTS];
+   kal_int16   txPwr[MAX_NUM_LISTS][MAX_NUM_TX_PWR_LEVEL];
+   kal_uint8   rxPwrCount[MAX_NUM_LISTS];
+} PswNstListSetMsgT;
+
+
+typedef struct
+{
+   kal_uint8   count;  /* Total of list */
+   kal_uint8   index[MAX_NUM_LISTS];
+   kal_uint16  band[MAX_NUM_LISTS];
+   kal_uint16  channel[MAX_NUM_LISTS];
+   kal_uint8   badFrames[MAX_NUM_LISTS];
+   kal_uint8   totalFrames[MAX_NUM_LISTS];
+   kal_int16   mainRxPwrQ5[MAX_NUM_LISTS][MAX_NUM_RSSI_LEVEL];
+   kal_int16   divRxPwrQ5[MAX_NUM_LISTS][MAX_NUM_RSSI_LEVEL];
+} PswNstListSetRespMsgT;
+
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+   SysCdmaBandT band;
+   kal_uint16 channel;
+} PswNstRxPwrReqMsgT;
+
+
+typedef struct
+{
+   kal_bool          isSuccess;
+   kal_uint16        PnOffset;
+   kal_int16         Strength;
+   kal_int16         MainRxPwrQ5;
+   kal_int16         DivRxPwrQ5;
+} PswNstRxPwrRespMsgT;
+
+
+typedef struct
+{
+   kal_uint8         Count;
+   kal_uint8         Index;
+   kal_uint8         TotalLevel;
+   kal_int16         MainRxPwrQ5[MAX_NUM_LISTS];
+   kal_int16         DivRxPwrQ5[MAX_NUM_LISTS];
+} PswNstListRxpwrRptMsgT;
+
+typedef struct
+{
+   ExeRspMsgT     RspInfo;
+   kal_uint8      txPwrCount;     /**txPwrCount should less than MAX_NUM_TX_PWR_LEVEL*/
+   kal_int16      txPwrLevel[MAX_NUM_TX_PWR_LEVEL]; /**unit of txPwrLevel is Q6 dBm*/
+} PswNstTxPwrLevelSetMsgT;
+
+typedef struct
+{
+   kal_bool          isSuccess;
+} PswNstTxPwrLevelSetRespMsgT;
+
+
+/* 1XCSFB, 3GPP2 C.S0097, Section 3 */
+typedef struct
+{
+  kal_bool    SIDIncluded;
+  kal_uint16  SID;
+  kal_bool    NIDIncluded;
+  kal_uint16  NID;
+  kal_bool    MULT_SIDSIncluded;
+  kal_bool    MULT_SIDS;
+  kal_bool    MULT_NIDSIncluded;
+  kal_bool    MULT_NIDS;
+  kal_bool    REG_ZONEIncluded;
+  kal_uint16  REG_ZONE;
+  kal_bool    TOTAL_ZONESIncluded;
+  kal_uint8   TOTAL_ZONES;
+  kal_bool    ZONE_TIMERIncluded;
+  kal_uint8   ZONE_TIMER;
+  kal_bool    PACKET_ZONE_IDIncluded;
+  kal_uint8   PACKET_ZONE_ID;
+  kal_bool    PZIDHystParametersIncluded;
+  kal_bool    PZ_HYST_ENABLED;
+  kal_bool    PZ_HYST_INFO_INCL;
+  kal_bool    PZ_HYST_LIST_LEN;
+  kal_uint8   PZ_HYST_ACT_TIMER;
+  kal_uint8   PZ_HYST_TIMER_MUL;
+  kal_uint8   PZ_HYST_TIMER_EXP;
+  kal_bool    P_REVIncluded;
+  kal_uint8   P_REV;
+  kal_bool    MIN_P_REVIncluded;
+  kal_uint8   MIN_P_REV;
+  kal_bool    NEG_SLOT_CYCLE_INDEX_SUPIncluded;
+  kal_bool    NEG_SLOT_CYCLE_INDEX_SUP;
+  kal_bool    ENCRYPT_MODEIncluded;
+  kal_uint8   ENCRYPT_MODE;
+  kal_bool    ENC_SUPPORTEDIncluded;
+  kal_bool    ENC_SUPPORTED;
+  kal_bool    SIG_ENCRYPT_SUPIncluded;
+  kal_uint8   SIG_ENCRYPT_SUP;
+  kal_bool    MSG_INTEGRITY_SUPIncluded;
+  kal_bool    MSG_INTEGRITY_SUP;
+  kal_bool    SIG_INTEGRITY_SUP_INCLIncluded;
+  kal_bool    SIG_INTEGRITY_SUP_INCL;
+  kal_bool    SIG_INTEGRITY_SUPIncluded;
+  kal_uint8   SIG_INTEGRITY_SUP;
+  kal_bool    AUTHIncluded;
+  kal_uint8   AUTH;
+  kal_bool    MAX_NUM_ALT_SOIncluded;
+  kal_uint8   MAX_NUM_ALT_SO;
+  kal_bool    USE_SYNC_IDIncluded;
+  kal_bool    USE_SYNC_ID;
+  kal_bool    MS_INIT_POS_LOC_SUP_INDIncluded;
+  kal_bool    MS_INIT_POS_LOC_SUP_IND;
+  kal_bool    MOB_QOSIncluded;
+  kal_bool    MOB_QOS;
+  kal_bool    BAND_CLASS_INFO_REQIncluded;
+  kal_bool    BAND_CLASS_INFO_REQ;
+  kal_bool    BAND_CLASSIncluded;
+  kal_uint8   BAND_CLASS;
+  kal_bool    BYPASS_REG_INDIncluded;
+  kal_uint8   BYPASS_REG_IND;
+  kal_bool    ALT_BAND_CLASSIncluded;
+  kal_uint8   ALT_BAND_CLASS;
+  kal_bool    MAX_ADD_SERV_INSTANCEIncluded;
+  kal_uint8   MAX_ADD_SERV_INSTANCE;
+  kal_bool    HOME_REGIncluded;
+  kal_bool    HOME_REG;
+  kal_bool    FOR_SID_REGIncluded;
+  kal_bool    FOR_SID_REG;
+  kal_bool    FOR_NID_REGIncluded;
+  kal_bool    FOR_NID_REG;
+  kal_bool    POWER_UP_REGIncluded;
+  kal_bool    POWER_UP_REG;
+  kal_bool    POWER_DOWN_REGIncluded;
+  kal_bool    POWER_DOWN_REG;
+  kal_bool    PARAMETER_REGIncluded;
+  kal_bool    PARAMETER_REG;
+  kal_bool    REG_PRDIncluded;
+  kal_uint8   REG_PRD;
+  kal_bool    REG_DISTIncluded;
+  kal_uint16  REG_DIST;
+  kal_bool    PREF_MSID_TYPEIncluded;
+  kal_uint8   PREF_MSID_TYPE;
+  kal_bool    EXT_PREF_MSID_TYPEIncluded;
+  kal_uint8   EXT_PREF_MSID_TYPE;
+  kal_bool    MEID_REQDIncluded;
+  kal_bool    MEID_REQD;
+  kal_bool    MCCIncluded;
+  kal_uint16  MCC;
+  kal_bool    IMSI_11_12Included;
+  kal_uint8   IMSI_11_12;
+  kal_bool    IMSI_T_SUPPORTEDIncluded;
+  kal_bool    IMSI_T_SUPPORTED;
+  kal_bool    RECONNECT_MSG_INDIncluded;
+  kal_bool    RECONNECT_MSG_IND;
+  kal_bool    RER_MODE_SUPPORTEDIncluded;
+  kal_bool    RER_MODE_SUPPORTED;
+  kal_bool    TKZ_MODE_SUPPORTEDIncluded;
+  kal_bool    TKZ_MODE_SUPPORTED;
+  kal_bool    TKZ_IDIncluded;
+  kal_bool    TKZ_ID;
+  kal_bool    PILOT_REPORTIncluded;
+  kal_bool    PILOT_REPORT;
+  kal_bool    SDB_SUPPORTEDIncluded;
+  kal_bool    SDB_SUPPORTED;
+  kal_bool    AUTO_FCSO_ALLOWEDIncluded;
+  kal_bool    AUTO_FCSO_ALLOWED;
+  kal_bool    SDB_IN_RCNM_INDIncluded;
+  kal_bool    SDB_IN_RCNM_IND;
+  kal_bool    FPC_FCH_Included;
+  kal_uint8   FPC_FCH_INIT_SETPT_RC3;
+  kal_uint8   FPC_FCH_INIT_SETPT_RC4;
+  kal_uint8   FPC_FCH_INIT_SETPT_RC5;
+  kal_uint8   FPC_FCH_INIT_SETPT_RC11;
+  kal_uint8   FPC_FCH_INIT_SETPT_RC12;
+  kal_bool    T_ADD_Included;
+  kal_uint8   T_ADD;
+  kal_bool    PILOT_INC_Included;
+  kal_uint8   PILOT_INC;
+  kal_bool    RAND_Included;
+  kal_uint32  RAND;
+  kal_bool    LP_SEC_Included;
+  kal_uint8   LP_SEC;
+  kal_bool    LTM_OFF_Included;
+  kal_uint8   LTM_OFF;
+  kal_bool    DAYLT_Included;
+  kal_bool    DAYLT;
+  kal_bool    GCSNAL2AckTimer_Included;
+  kal_uint8   GCSNAL2AckTimer;
+  kal_bool    GCSNASequenceContextTimer_Included;
+  kal_uint8   GCSNASequenceContextTimer;
+} PswCDMA2000Parm;
+
+typedef struct
+{
+  kal_uint16  sid;
+  kal_uint16  nid;
+  kal_bool    multipleSID;
+  kal_bool    multipleNID;
+  kal_bool    homeReg;
+  kal_bool    foreignSIDReg;
+  kal_bool    foreignNIDReg;
+  kal_bool    parameterReg;
+  kal_bool    powerUpReg;
+  kal_uint8   registrationPeriod;
+  kal_uint16  registrationZone;
+  kal_uint8   totalZone;
+  kal_uint8   zoneTimer;
+  kal_bool    powerDownReg;
+} PswIratCSFBRegParm1xRTT;
+
+typedef struct
+{
+  kal_uint8   ac_Barring0to9;
+  kal_uint8   ac_Barring10;
+  kal_uint8   ac_Barring11;
+  kal_uint8   ac_Barring12;
+  kal_uint8   ac_Barring13;
+  kal_uint8   ac_Barring14;
+  kal_uint8   ac_Barring15;
+  kal_uint8   ac_BarringMsg;
+  kal_uint8   ac_BarringReg;
+  kal_uint8   ac_BarringEmg;
+} PswAC_BarringConfig1xRTT;
+
+typedef struct
+{
+  kal_bool    sysTimeInfoIncl;
+  kal_uint8   systemTimeInfo[SYS_SYSTIME_SIZE];
+  kal_bool    srchWinSizeIncl;
+  kal_uint16  searchWindowSize;
+  kal_bool    csfb_RegParam1XRTTIncl;
+  PswIratCSFBRegParm1xRTT csfb_RegParm1XRTT;
+  kal_bool    longCodeStateIncl;
+  kal_uint8   longCodeState1XRTT[6];
+  kal_bool    cellReselParm1XRTTIncl;
+  kal_bool    csfb_SupportForDualRxUEIncl;
+  kal_bool    csfb_SupportForDualRxUE;
+  kal_bool    ac_BarringConfig1XRTTIncl;
+  PswAC_BarringConfig1xRTT ac_BarringConfig1XRTT;
+  kal_uint8   ListSize;
+#ifdef MTK_DEV_C2K_IRAT
+  IratSIB8MeasCellListT cellReselParm1XRTT[1];
+#endif /* MTK_DEV_C2K_IRAT */
+} PswSIB8Parm1xRTT;
+
+typedef struct
+{
+   kal_bool   inclRand;
+   kal_uint32 rand;
+   kal_bool   inclMobParms;
+   PswCDMA2000Parm *mobP;
+} PswCsfbCDMA2000ParmMsgT;
+
+typedef struct
+{
+   PswSIB8Parm1xRTT *sib8P;
+} PswCsfbSib8ParmMsgT;
+
+typedef struct
+{
+   kal_uint16 len;
+   kal_uint8  *data;
+} PswCsfbGcsnaDLMsgT;
+
+typedef struct
+{
+   PswSIB8Parm1xRTT *sib8P;
+} PswCsfbMeasReqMsgT;
+
+typedef struct
+{
+   kal_bool   redir;
+#ifdef MTK_DEV_C2K_IRAT
+   IratReSelectionCellListT *redirL;
+#endif /* MTK_DEV_C2K_IRAT */
+} PswCsfbRedirectMsgT;
+
+typedef struct
+{
+   kal_bool   inclRand;
+   kal_uint32 rand;
+   kal_bool   inclMobParms;
+   PswCDMA2000Parm *mobP;
+} PswCsfbHoEutraPrepMsgT;
+
+typedef struct
+{
+   kal_bool   inclTime;
+   kal_uint8  systemTimeInfo[SYS_SYSTIME_SIZE];
+   kal_uint16 len;
+   kal_uint8  *data;
+} PswCsfbMobFromEutraMsgT;
+
+typedef enum
+{
+   RF_UNDEFINED,
+   ONE_RX_ONE_TX,
+   TWO_RX_ONE_TX,
+   TWO_RX_TWO_TX
+} UEAntennaCfgType;
+
+typedef struct
+{
+   UEAntennaCfgType UEAntCfg;
+} PswAntennaCfgMsgT;
+
+typedef struct
+{
+   ExeRspMsgT RspInfo;
+} PswCsfbGetStatusMsgT;
+
+typedef struct
+{
+   kal_uint8 csfbState;
+   kal_uint8 antenna;
+} PswCsfbGetStatusRspMsgT;
+
+#ifdef __TC10_IPC_CDMA_SUPPORT__
+/*SMS auto reg info*/
+typedef struct
+{
+   MobileIDType Id;
+   kal_uint64      value;
+   IMSIType    Imsi;
+   kal_uint8 GsmImsi[9];    /* from sim_status_ind */
+   kal_bool  IsGsmImsiValid; /* from sim_status_ind */
+} PswSetAutoRegInfoMsgT;
+#endif
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+  kal_uint8 Action;   /* 0-stop; 1-start; 2-update threshold only */
+  kal_int8 Threshold; /* -2x10xlogPS, PS is the pilot strength */
+} PswIratRATSigMonReqT;
+#endif
+/* MTK_DEV_C2K_IRAT */
+
+#ifdef MTK_DEV_C2K_IRAT
+
+typedef enum
+{
+    RSVAS_SERVICE_TYPE_NONE           = 0x0000FFFF
+    ,RSVAS_SERVICE_TYPE_UNSPECIFIED   = 0x0001FFFF
+#if defined(__GEMINI__)
+    ,RSVAS_SERVICE_TYPE_KEEP          = 0x0002FFFF
+#endif
+
+    ,RSVAS_SERVICE_TYPE_CS            = 0x00000101
+    ,RSVAS_SERVICE_TYPE_PS            = 0x00000202
+    ,RSVAS_SERVICE_TYPE_AS            = 0x00000404
+    ,RSVAS_SERVICE_TYPE_HPS           = 0x00000808
+    ,RSVAS_SERVICE_TYPE_MEDPS         = 0x00001010
+
+    //For MO/MT, EMM notify EAS to do CSFB, CS+PS service may be occupied at the same time
+    ,RSVAS_SERVICE_TYPE_CS_PS         = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_PS)
+    ,RSVAS_SERVICE_TYPE_CS_HPS        = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_HPS)
+    ,RSVAS_SERVICE_TYPE_PS_HPS        = (RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_HPS)
+    ,RSVAS_SERVICE_TYPE_CS_PS_HPS     = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_HPS)
+    
+    ,RSVAS_SERVICE_TYPE_CS_MEDPS      = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_MEDPS)
+    ,RSVAS_SERVICE_TYPE_PS_MEDPS      = (RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_MEDPS)
+    ,RSVAS_SERVICE_TYPE_MEDPS_HPS     = (RSVAS_SERVICE_TYPE_MEDPS|RSVAS_SERVICE_TYPE_HPS)
+    ,RSVAS_SERVICE_TYPE_CS_PS_MEDPS   = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_MEDPS)
+    ,RSVAS_SERVICE_TYPE_CS_MEDPS_HPS  = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_MEDPS|RSVAS_SERVICE_TYPE_HPS)
+    ,RSVAS_SERVICE_TYPE_PS_MEDPS_HPS  = (RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_MEDPS|RSVAS_SERVICE_TYPE_HPS)
+    ,RSVAS_SERVICE_TYPE_CS_PS_MEDPS_HPS = (RSVAS_SERVICE_TYPE_CS|RSVAS_SERVICE_TYPE_PS|RSVAS_SERVICE_TYPE_MEDPS|RSVAS_SERVICE_TYPE_HPS)
+
+} rsvas_service_type_enum;
+
+typedef enum {
+  RSVAS_ID_INVALID, /* Invalid C2K RSVAS Id */
+  RSVAS_ID_1XRTT,   /* C2K RSVAS Id is 1xRTT */
+  RSVAS_ID_EVDO,    /* C2K RSVAS Id is EVDO */
+} C2kRsvasIdT;
+
+/* RSVAS State Machine States */
+typedef enum
+{
+  RSVAS_NORMAL_STATE,           /* RSVAS  normal mode */
+  RSVAS_CONNECT_STATE,          /* RSVAS  connect mode  */
+  RSVAS_VIRTUAL_STATE,          /* RSVAS  virtual suspend mode */
+  RSVAS_SUSPEND_STATE,          /* RSVAS  suspend mode */
+
+  RSVAS_NUM_STATES
+} RsvasStateT;
+
+typedef struct
+{
+  kal_bool rsvasServiceOccupyResult;
+} PswRsvasServiceOccupyResultT;
+
+typedef struct
+{
+  C2kRsvasIdT id;
+  rsvas_service_type_enum servType;
+} PswRsvasServiceOccupyRequestT;
+
+typedef struct
+{
+  C2kRsvasIdT id;
+  rsvas_service_type_enum servType;
+} PswRsvasServiceReleaseT;
+
+
+typedef struct
+{
+  cs_reg_cause_enum  cause;
+  kal_bool           is_for_silent_redial;
+} PswIrat1xRegReqMsgT;
+
+typedef struct
+{
+  kal_bool 	   Valid;
+  kal_int16    RxPower;
+  kal_int16    TxPower;
+  kal_int16    PRxPhr;
+} AntIdxT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_int16    TasState;
+  kal_int16    TasVer;
+  kal_bool     TasEnable;
+  kal_bool     UTasEnable;
+  kal_bool     EnableForceTas;
+  kal_int16    RxPowerDbmL;
+  kal_int16    RxPowerDbmU;
+  kal_int16    RxPowerDbmLp;
+  AntIdxT      AntIdx[20];
+} PACKED_POSTFIX PswFTDTASParaT;
+
+#endif
+
+/******************PswCustomLockDefination***************************************/
+
+#define PSW_FEATURE_TATA       0x80000000
+#define PSW_FEATURE_RELIANCE   0x40000000
+#define PSW_FEATURE_UNICOM     0x20000000
+#define PSW_FEATURE_UIMSUPPORT 0x00000001
+#define PSW_FEATURE_CUSTOM_PRILOCK   0x00000002
+
+
+  typedef enum {
+    PSW_CUSTOM_LOCK_FEATURE_OFF =0,
+    PSW_CUSTOM_LOCK_FEATURE_IMSI =0x01,
+    PSW_CUSTOM_LOCK_FEATURE_SIDNID =0x02,
+    PSW_CUSTOM_LOCK_FEATURE_SYSTEM_VALIDATE = 0x04,
+    PSW_CUSTOM_LOCK_FEATURE_SUBNET =0x08,
+    PSW_CUSTOM_LOCK_FEATURE_EVDO_SYSTEM_VALIDATE = 0x10
+  }PSW_CUSTOM_LOCK_FEATURE;
+
+
+ typedef struct
+{
+   kal_uint16 min_highest3;
+   kal_uint16 min_middle3;
+   kal_uint8   min_middle1;
+   kal_uint16 min_lowest3;
+   /*each bit is defined for every cumtomfeafure */
+} PswMinDigitalValue;
+
+ typedef struct
+ {
+  kal_uint32 PswCustomLockSet;
+
+  kal_bool (*PswCustomImsiLock)(kal_uint16 PhoneMcc,kal_uint8 PhoneMnc,PswMinDigitalValue  PhoneMin);
+  kal_bool (*PswCustomSidNidLock)(kal_uint16 PhoneSid,kal_uint16 PhoneNid,kal_bool PrlPrefonly);
+  kal_bool (*PswCustomSubnetLock)(kal_uint8 *Subnet,kal_uint8 mask);
+  kal_bool (*PswCustomSysValidate)(kal_uint16 SysSid,kal_uint16 SysNid)   ;
+  kal_bool (*PswCustomDOSysValidate)(kal_uint8 *Subnet, kal_uint8 mask)   ;
+
+ }PswCustomLockCallBackT;
+
+  typedef enum
+ {
+     VAL_PSW_CKECK_Custom_Locking_Feature_OK = 0x00,
+     VAL_PSW_CKECK_Custom_IMSI_ERROR,
+     VAL_PSW_CKECK_Custom_DefaultMIN_OK,
+     VAL_PSW_CKECK_Custom_SIDNID_ERROR,
+     VAL_PSW_CKECK_Custom_Locking_Feature_NUM
+ }PswCheckForCustomLockStateT;
+
+
+typedef struct
+{
+    kal_uint8 nCheckRst;
+}PswCheckLockingFeatureRptT;
+
+typedef struct
+{
+    kal_bool valid;
+}PswSetImsiMValidT;
+
+typedef enum
+{
+    QPCH_RATE_4800BPS = 0,
+    /*AKK 09-11-01 Slotted Mode: Corrected 9600PBS to 9600BPS*/
+    QPCH_RATE_9600BPS = 1
+
+}  QpchRate;
+
+typedef struct
+{
+    kal_int16  RSSI;
+    kal_int16  PchEbNt;
+    kal_int16  SyncEbNt;
+    kal_int16  EcIo;
+    kal_int32  total_foe;
+}L1dmeasvalue;
+
+typedef PACKED_PREFIX struct
+{
+   QpchRate   QpchRate;
+   kal_uint16     QpchPilotPn;
+   kal_int16      QpchPilotPwr;
+   kal_int16      QpchPi1;
+   kal_int16      QpchPi1Status;
+   kal_uint16     QpchPi1Pos;
+   kal_int16      QpchPi1BitIEnergy;
+   kal_int16      QpchPi1BitQEnergy;
+   kal_int16      QpchPi1PilotIEnergy;
+   kal_int16      QpchPi1PilotQEnergy;
+   kal_int16      QpchPi2;
+   kal_int16      QpchPi2Status;
+   kal_uint16     QpchPi2Pos;
+   kal_int16      QpchPi2BitIEnergy;
+   kal_int16      QpchPi2BitQEnergy;
+   kal_int16      QpchPi2PilotIEnergy;
+   kal_int16      QpchPi2PilotQEnergy;
+   kal_int16      QpchSysQpchThi;
+   kal_int16      QpchSysQpchThb;
+} PACKED_POSTFIX  QpchSpyData;
+
+typedef enum
+{
+   OUT_STAND_REQ_RCVD,
+   BS_CAPABILITIES,
+   BS_REJECT_RECEIVED,
+   BS_RESPONSE_NOT_SUPPORTED,
+   INVALID_PPM_SESSION_ID,
+   INVALID_LOCSERV_SESSION_ID,
+   OUTGOING_MSG_BUFFER_GET_FAIL,
+   SESS_TAG_MISMATCH,
+   BS_LOCATION_RSP_RCVD,
+   BS_RESPONSE_ELEMENT_RCVD,
+   BS_REQUEST_ELEMENT_RCVD,
+   MS_LOCATION_ORIG_START,
+   LOCSERV_SESS_HEADER_DUMP,
+   LOCSERV_SESS_REQ_DUMP,
+   LOCSERV_SESS_RSP_DUMP,
+   LOCSERV_SESS_AFLT_DUMP,
+   LOCSERV_SESS_AGPS_DUMP,
+   INVALID_AFLT_STATE,
+   INVALID_AGPS_STATE,
+   UNEXPECTED_AFLT_EVENT,
+   UNEXPECTED_AGPS_EVENT,
+   MS_REQUEST_TO_BS,
+   MS_RESPONSE_TO_BS,
+   COLLISION,
+   PDDM_RECEIVED,
+   PDDM_SENT,
+   RMS_PHASE_ERROR_DUMP
+} LocSrvTraceIds;
+
+typedef enum
+{
+   BS_REJECT = 0,
+   PROV_LOC_RSP,
+   PROV_BS_CAP,
+   PROV_BS_ALMANAC,
+   PROV_GPS_ACQ_ASSIST,
+   PROV_GPS_SENSITIV_ASSIST,
+   PROV_GPS_LOC_ASSIST_S_COORD,
+   PROV_GPS_LOC_ASSIST_C_COORD,
+   PROV_GPS_ALMANAC,
+   PROV_GPS_EPHEMERIS,
+   PROV_GPS_NAV_MSG_BITS,
+   PROV_GPS_ALMANAC_CORR,
+   PROV_GPS_SAT_HEALTH_INFO,
+   MAX_PROV_GPS_INFO
+} BS_RspTypes;
+
+typedef enum
+{
+   REQ_RESERVED = 0,
+   REQ_MS_LOC_RSP,
+   REQ_MS_INFO,
+   REQ_AUTO_MEAS_WEIGHT_FAC,
+   REQ_PSEUDO_MEAS,
+   REQ_PILOT_PHASE_MEAS,
+   REQ_TIME_OFFSET_MEAS,
+   REQ_CANCELLATION
+} BS_ReqTypes;
+
+typedef enum
+{
+   RESERVED0 = 0,
+   REQ_LOC_RSP,
+   REQ_BS_CAP,
+   REQ_BS_ALMANAC,
+   REQ_GPS_ACQ_ASSIST,
+   REQ_GPS_SENSITIV_ASSIST,
+   REQ_GPS_LOC_ASSIST,
+   RESERVED1,
+   REQ_GPS_ALMANAC,
+   REQ_GPS_EPHEMERIS,
+   REQ_GPS_NAV_MSG_BITS,
+   REQ_GPS_ALMANAC_CORR,
+   REQ_GPS_SAT_HEALTH_INFO
+} MS_ReqTypes;
+
+typedef enum
+{
+   REJECT = 0,
+   PROV_MS_LOC_RSP,
+   PROV_MS_INFO,
+#ifdef MTK_CBP
+   PROV_SYS_INFO = PROV_MS_INFO,
+#endif
+   PROV_AUTO_MEAS_WEIGHT_FACTOR,
+   PROV_PSEUDO_MEAS,
+   PROV_PILOT_PHASE_MEAS,
+   PROV_TIME_OFFSET_MEAS,
+   PROV_CANCELLATION_ACK
+} MS_RspTypes;
+
+
+typedef struct
+{
+	LocSrvTraceIds traceId;
+	MS_RspTypes    rspType;
+}PswIs801FlowMsRspMsg;
+
+typedef struct
+{
+	LocSrvTraceIds traceId;
+	MS_ReqTypes    reqType;
+}PswIs801FlowMsReqMsg;
+
+typedef struct
+{
+	LocSrvTraceIds traceId;
+	BS_ReqTypes    reqType;
+}PswIs801FlowBsReqMsg;
+
+typedef struct
+{
+	LocSrvTraceIds traceId;
+	BS_RspTypes    rspType;
+}PswIs801FlowBsRspMsg;
+
+typedef enum
+{
+  CP_NP_UNKNOWN,
+  CP_NP_ISDN_TELEPHONY,
+  CP_NP_DATA = 3,
+  CP_NP_TELEX,
+  CP_NP_PRIVATE = 9
+} NumberPlan;
+
+
+typedef enum
+{
+  CP_NT_UNKNOWN,
+  CP_NT_INTERNATIONAL,
+  CP_NT_NATIONAL,
+  CP_NT_NETWORK_SPECIFIC,
+  CP_NT_SUBSCRIBER,
+  CP_NT_RSVD,
+  CP_NT_ABBREVIATED
+} NumberType;
+
+
+typedef enum
+{
+  CP_PI_ALLOWED,
+  CP_PI_RESTRICTED,
+  CP_PI_NUMBER_NA,
+  CP_PI_RSVD
+} PresentationIndicator;
+
+typedef enum
+{
+  CP_SI_USER_PROVIDED_NOT_SCREENED,
+  CP_SI_USER_PROVIDED_VERIFIED_PASSED,
+  CP_SI_USER_PROVIDED_VERIFIED_FAILED,
+  CP_SI_NETWORK_PROVIDED
+} ScreeningIndicator;
+
+typedef struct
+{
+  NumberType type;
+  NumberPlan plan;
+  kal_int8       number[CP_MAX_CALLED_PARTY_NUMBER_SIZE + 1];/*Inc NULL terminator*/
+} CalledPartyNumber;
+
+typedef struct
+{
+  NumberType type;
+  NumberPlan plan;
+  PresentationIndicator pi;
+  ScreeningIndicator    si;
+  kal_int8 number[CP_MAX_CALLING_PARTY_NUMBER_SIZE + 1];  /* Inc NULL terminator */
+} CallingPartyNumber;
+
+typedef enum
+{
+  CP_SUBADDRESS_TYPE_NSAP,
+  CP_SUBADDRESS_TYPE_USER_SPECIFIED = 2
+} SubaddressType;
+
+typedef enum
+{
+  CP_ODDEVEN_INDICATOR_EVEN,
+  CP_ODDEVEN_INDICATOR_ODD
+} OddEvenIndicator;
+
+typedef struct
+{
+  kal_bool          extension;
+  SubaddressType type;
+  OddEvenIndicator indicator;
+  kal_uint8         address[CP_MAX_SUBADDRESS_SIZE + 1];/*Inc NULL terminator*/
+} Subaddress;
+
+typedef enum
+{
+  NO_TRAFFIC,
+  PRIMARY_TRAFFIC,
+  SECONDARY_TRAFFIC
+} TrafficType;
+
+/* IS-707-A-2.10 RLP BLOB for HSPD */
+typedef struct
+{
+  kal_uint8            rlpBlobType;
+  kal_uint8            rlpVersion;
+  kal_uint8            rtt;
+  kal_bool             initVar;
+  kal_uint32           bsExtSeqM;
+  kal_uint32           msExtSeqM;
+  kal_uint8            maxMsNakRoundsFwd;
+  kal_uint8            maxMsNakRoundsRev;
+  kal_uint8            nakRoundsFwd;
+  kal_uint8            nakRoundsRev;
+  kal_uint8            nakPerRoundFwd[ CP_MAX_ROUNDS_FWD ];
+  kal_uint8            nakPerRoundRev[ CP_MAX_ROUNDS_REV ];
+  kal_uint8            ddw;
+  kal_uint8            rexmit_timer;
+} RlpBlobPsw;
+
+/* define set of SCH coding options */
+typedef enum
+{
+    SCH_CONV_CODING  = 0,
+    SCH_TURBO_CODING = 1
+
+} SchCodingTypes;
+
+/* define set of RC settings */
+typedef enum
+{
+    RC_INVALID = 0,
+    RC_1 = 1,
+    RC_2 = 2,
+    RC_3 = 3,
+    RC_4 = 4,
+    RC_5 = 5,
+    RC_6 = 6,
+    RC_7 = 7,
+    RC_8 = 8,
+    RC_9 = 9,
+    RC_10 = 10,		/* PDCH RC */
+	RC_11 = 11,
+	RC_12 = 12,
+    RC_MAX
+} RcTypes;
+
+/* Service configuration structures */
+typedef struct
+{
+  kal_uint8            schRecLen;
+  RcTypes          schRc;
+  SchCodingTypes   coding;
+  kal_bool             frame40Used;
+  kal_bool             frame80Used;
+  kal_uint8			   maxRate;
+} ChConfigSch;
+
+/* Service option connection record structure */
+typedef struct
+{
+  kal_uint8              conRef;          /* service option connection reference */
+  SysServiceOptionT  serviceOption;
+  TrafficType        forTraffic;      /* forward traffic type                */
+  TrafficType        revTraffic;      /* reverse traffic type                */
+#ifdef IS2000_REV_0
+  kal_uint8              uiEncryptMode;
+  kal_uint8              srId;            /* Set of number of bits per frame of the RFCh*/
+  kal_bool               rlpInfoIncl;
+  kal_uint8              rlpBlobLen;      /* Set of number of bits per frame of the RFCh*/
+  RlpBlobPsw             rlpBlob;
+  kal_bool               qosParmsIncl;
+#endif
+} ConnectionRecord;
+
+typedef struct
+{
+  kal_uint8            forSchId;
+  MultiplexOption  forSchMux;
+  ChConfigSch      forSchChConf;
+} ForSchCc;
+
+typedef struct
+{
+  kal_uint8            revSchId;
+  MultiplexOption  revSchMux;
+  ChConfigSch      revSchChConf;
+} RevSchCc;
+
+typedef struct
+{
+  MultiplexOption  forMuxOption;          /* forward multiplex option       */
+  MultiplexOption  revMuxOption;          /* reverse multiplex option       */
+  /*AKK 11-16-00 Added per LMD_SERVICE_CONFIGURATION_MSG */
+  kal_uint8            forNumBits;      /* Set of number of bits per frame of the FFCh*/
+  kal_uint8            revNumBits;      /* Set of number of bits per frame of the RFCh*/
+  kal_uint8            numConRec;             /* # of serv opt connection rec   */
+  ConnectionRecord conRec[CP_MAX_SERV_OPT_CONN_REC]; /* serv opt conn recs  */
+  /* AKK 08-15-00 IS2000A, Added new service configuration fields*/ 
+  /*AKK 12-30-02 per CR#570 Replaced IS2000A with IS2000_REV_0*/
+#ifdef IS2000_REV_0
+  /*AKK 11-17-00 Per L1D_SERVICE_CONFIGURATION_MSG */
+  kal_bool             fchCcIncl;
+  kal_uint8            fchFrameSize;
+  kal_uint8            forFchRc;
+  kal_uint8            revFchRc;
+  kal_bool             dcchCcIncl;
+  kal_uint8            dcchFrameSize;
+  kal_uint8            forDcchRc;
+  kal_uint8            revDcchRc;
+  /*AKK 04-07-01 Per IS2K Rev0 fix*/
+
+  kal_bool             forSchCcIncl;
+  kal_uint8            numForSch;
+  ForSchCc         forSchCc[ CP_MAX_NUM_FOR_SCH ];
+
+  kal_bool             revSchCcIncl;
+  kal_uint8            numRevSch;
+  RevSchCc         revSchCc[ CP_MAX_NUM_REV_SCH ];
+  kal_uint8            fchDcchMuxOptionInd;
+  kal_uint16             forDcchMuxOption;
+  kal_uint16             revDcchMuxOption;
+  kal_bool             forPdchCcIncl;
+  kal_uint16             forPdchMuxOption;
+  kal_uint8            forPdchRc;
+#endif
+  /*END--AKK 11-17-00 Per L1D_SERVICE_CONFIGURATION_MSG */
+  /*END--AKK 08-15-00 IS2000A, Added new service configuration fields*/ 
+
+  kal_bool             nnScrIncl;
+} ServiceConfiguration;
+typedef enum
+{
+  CP_PITCH_MEDIUM,
+  CP_PITCH_HIGH,
+  CP_PITCH_LOW,
+  CP_PITCH_RSVD
+} AlertPitch;
+
+typedef enum
+{
+  CP_ST_TONE_SIGNAL,
+  CP_ST_ISDN_ALERTING,
+  CP_ST_IS54B_ALERTING,
+  CP_ST_RSVD
+} SignalType;
+
+typedef struct
+{
+  SignalType type;
+  AlertPitch pitch;
+  kal_uint8      signal;
+} Signal;
+
+
+typedef struct
+{
+  kal_uint16        pulse_frequency;
+  kal_uint8         pulse_on_time;
+  kal_uint8         pulse_off_time;
+  kal_uint8         pulse_count;
+} MeterPulses;
+
+typedef struct
+{
+  kal_uint8         amplitude;
+  kal_uint16        freq_1;
+  kal_uint16        freq_2;
+  kal_uint8         on_time;
+  kal_uint8         off_time;
+  kal_uint8         repeat;
+  kal_uint8         delay;
+} CadenceGroup;
+
+typedef struct
+{
+  kal_uint8         cadence_count;
+  kal_uint8         num_groups;              /* 4 bits in length */
+  CadenceGroup  cGroup[CP_MAX_CADENCE_GROUPS_REC];
+} ParametricAlerting;
+
+typedef enum
+{
+  CP_DISPLAY_TAG_BLANK = 0x80,
+  CP_DISPLAY_TAG_SKIP,
+  CP_DISPLAY_TAG_CONTINUATION,
+  CP_DISPLAY_TAG_CALLED_ADDRESS,
+  CP_DISPLAY_TAG_CAUSE,
+  CP_DISPLAY_TAG_PROGRESS_INDICATOR,
+  CP_DISPLAY_TAG_NOTIFICATION_INDICATOR,
+  CP_DISPLAY_TAG_PROMPT,
+  CP_DISPLAY_TAG_ACCUMULATED_DIGITS,
+  CP_DISPLAY_TAG_STATUS,
+  CP_DISPLAY_TAG_INBAND,
+  CP_DISPLAY_TAG_CALLING_ADDRESS,
+  CP_DISPLAY_TAG_REASON,
+  CP_DISPLAY_TAG_CALLING_PARTY_NAME,
+  CP_DISPLAY_TAG_CALLED_PARTY_NAME,
+  CP_DISPLAY_TAG_ORIGINAL_CALLED_NAME,
+  CP_DISPLAY_TAG_REDIRECTING_NAME,
+  CP_DISPLAY_TAG_CONNECTED_NAME,
+  CP_DISPLAY_TAG_ORIGINATING_RESTRICTIONS,
+  CP_DISPLAY_TAG_DATE_TIME_OF_DAY,
+  CP_DISPLAY_TAG_CALL_APPEARANCE_ID,
+  CP_DISPLAY_TAG_FEATURE_ADDRESS,
+  CP_DISPLAY_TAG_REDIRECTION_NAME,
+  CP_DISPLAY_TAG_REDIRECTION_NUMBER,
+  CP_DISPLAY_TAG_REDIRECTING_NUMBER,
+  CP_DISPLAY_TAG_ORIGINAL_CALLED_NUMBER,
+  CP_DISPLAY_TAG_CONNECTED_NUMBER,
+  CP_DISPLAY_TAG_TEXT = 0x9E
+} DisplayTag;
+
+typedef struct
+{
+  DisplayTag    display_tag;
+  kal_uint8         display_len;
+                                         /* include NULL terminator */
+  kal_uint8         chari[CP_MAX_EXTENDED_DISPLAY_SIZE + 1];
+} ExtendedDisplayRec;
+
+typedef struct
+{
+  kal_uint8         ext_display_ind;
+  kal_uint8         display_type;
+  kal_uint8         num_disp_rec;
+  ExtendedDisplayRec extDisp[CP_MAX_EXTENDED_DISPLAY_REC];
+} ExtendedDisplay;
+
+typedef struct
+{
+  kal_uint8         polarity_included;
+  kal_uint8         toggle_mode;
+  kal_uint8         reverse_polarity;
+  kal_uint8         power_denial_time;
+} LineControl;
+
+
+typedef struct
+{
+  kal_uint8         extension_bit_1;
+  NumberType    type;
+  NumberPlan    plan;
+  kal_uint8         extension_bit_2;
+  PresentationIndicator pi;
+  ScreeningIndicator    si;
+  kal_uint8         extension_bit_3;
+  kal_uint8         redirection_reason;
+  kal_uint8         number[CP_MAX_REDIRECTING_NUMBER_SIZE + 1];
+                /* including NULL terminator */
+} RedirectingNumber;
+
+typedef struct
+{
+  kal_uint8 upLink;
+  kal_uint8 downLink;
+} AudioControl;
+
+typedef struct
+{
+  kal_bool   rcvdDisplay;
+  kal_int8   display[CP_MAX_DISPLAY_SIZE  +  1];  /* Incl NULL terminator */
+  kal_bool   rcvdCalledPartyNumber;
+  CalledPartyNumber calledPartyNumber;
+  kal_bool   rcvdCallingPartyNumber;
+  CallingPartyNumber callingPartyNumber;
+  kal_bool   rcvdConnectedNumber;
+  CallingPartyNumber connectedNumber;   /* Same format as CallingPartyNumber */
+  kal_bool   rcvdSignal;
+  Signal signal;
+  kal_bool   rcvdMessageWaiting;
+  kal_uint8  msgCount;
+  kal_bool   rcvdCLIRCause;
+  kal_uint8  clirCause;
+  kal_bool   rcvdRelease;
+  kal_bool   rcvdAudioControl;
+  AudioControl audioControl;
+  kal_bool   rcvdMeterPulse;
+  MeterPulses meterPulse;
+  kal_bool   rcvdParametricAlerting;
+  ParametricAlerting parametricAlert;
+  kal_bool   rcvdLineControl;
+  LineControl lineControl;
+  kal_bool   rcvdExtendedDisplay;
+  ExtendedDisplay extendedDisplay;
+  kal_bool   rcvdCalledPartySubaddress;
+  Subaddress calledPartySubaddress;
+  kal_bool   rcvdCallingPartySubaddress;
+  Subaddress callingPartySubaddress;
+  kal_bool   rcvdConnectedSubaddress;
+  Subaddress connectedSubaddress;
+  kal_bool   rcvdRedirectingNumber;
+  RedirectingNumber redirectingNumber;
+  kal_bool   rcvdRedirectingSubaddress;
+  Subaddress redirectingSubaddress;
+  kal_bool   rcvdCallWaitingIndicator;
+  kal_uint8  callWaitingIndicator;
+} FORInfoData;
+typedef enum
+{
+  SC_REJECT = 0,
+  SC_ACCEPT,
+  SC_ALTERNATIVE,
+  SC_UNKNOWN
+} SCResponse;
+
+typedef enum
+{
+	SCC_DATA_BURST_IND,
+	SCC_CONN_IND,
+	SCC_NEG_CONN_IND,	
+	SCC_DISCONN_IND,
+	SCC_RELEASE_IND,
+	SCC_SERV_CONF_VALIDATE,	
+	SCC_PAGE_IND,
+	SCC_SERV_OPTIION_VALIDATE,
+	SCC_ALERT_IND,
+	SCC_SOCM_IND,
+	SCC_SOCO_IND,
+	SCC_SERV_CONF_INIT,
+	SCC_PZ_ZONE_IND,	
+	SCC_IDLE_IND,
+    SCC_SID_NID_IND,    
+    SCC_HAND_OFF_IND,
+    SCC_NW_P_REV_IND,    
+	SCC_ZONE_IND,
+	SCC_TC_ASSIGN_IND,
+	SCC_SET_SSDB_IND,
+	/* add code here */
+}Scc_IndMsgType;
+
+typedef enum
+{
+	SCC_VS_ORIG_REQ,
+    SCC_PS_ORIG_REQ, 
+    SCC_LS_ORIG_REQ,
+	SCC_SMS_ORIG_REQ,
+	SCC_SMS_REL_REQ,
+	SCC_VS_ANSWER_REQ,	
+	SCC_VS_RELESE_REQ,
+	SCC_LS_RELESE_REQ,
+	SCC_VS_SWITCH_REQ,
+	SCC_TIMER_EXPIRY,
+	SCC_PZ_HYSTER_ACT_SET,
+	/* add code here */
+}Scc_ReqMsgType;
+
+typedef struct
+{
+	kal_uint8 msgNumber; 
+	kal_uint8 burstType;
+	kal_uint8 numMsgs; 
+	kal_uint8 numFields; 
+	kal_uint8 data[255];
+}SccDataBurstIndMsg;
+
+typedef struct
+{
+	kal_bool   encoded;             /* digits encoded indication    */
+    kal_bool   digitMode;           /* digit encoding indicator     */
+    kal_uint8  numberType;          /* type of number               */
+    kal_uint8  numberPlan;          /* numbering plan               */
+    kal_uint8  digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1]; /* ascii digits, null terminated string */
+    kal_uint8  numDigits;           /* number of digits to be dialled       */    
+    PswCallingPartyNumberT CPNInfo; /* Calling Party Number Info   */
+    PswCallModeT callMode;      	/* voice call mode indicator     */
+    kal_bool   multCPN;             /* whether MS has >1 calling party num values */
+    kal_bool   inclCallingSub;      /* whether calling party subaddr info included */   
+    Subaddress callingSub;
+    kal_bool inclCalledSub;         /* whether called party subaddr info included */    
+    Subaddress calledSub;
+}SccVsOrigReqMsg;
+
+typedef struct
+{
+    SysPacketDataSvcTypeT type;
+    kal_uint8             digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1]; /* ascii digits, null terminated string */
+}SccPsOrigReqMsg;
+
+typedef struct
+{
+    SysLoopbackSvcTypeT   prefType;
+    kal_uint8             digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1]; /* ascii digits, null terminated string */
+}SccLsOrigReqMsg;
+
+typedef struct
+{
+    kal_uint16 SO;
+}SCCSwitchReqMsg;
+
+
+typedef struct
+{
+    kal_uint16 timerID;
+}SCCTimerExpiry;
+
+typedef struct
+{
+    kal_bool bActivated;
+}PZHysterActIndSet;
+
+typedef struct
+{
+    kal_uint8  response;         
+    kal_uint8  reason;         
+}SccServiceConfigRsp;
+
+typedef struct
+{
+    kal_uint8  reason;         
+}SccDisconnectInd;
+
+typedef struct
+{
+    kal_uint8  reason;         
+}SccReleaseInd;
+
+typedef struct
+{
+    kal_bool               valOnly;
+    ServiceConfiguration   sc;        
+}SccServiceConfigValidate;
+
+typedef struct
+{
+    SysServiceOptionT   so;
+}SccServiceOptiValidate;
+
+typedef struct
+{
+    FORInfoData   alertDate; 
+}SccAlertInd;
+
+typedef struct
+{
+    kal_uint8     conRef;
+    kal_uint16 serviceOption;        
+    kal_uint8 length;
+    kal_uint8 ctlRec[MAX_SERV_OPT_CNTL_RECORD_LEN];
+    kal_uint32 actionTime;
+}SccSocmInd;
+
+typedef struct
+{
+    kal_uint8 ordq;
+    kal_uint32 actionTime;
+}SccSocoInd;
+
+typedef struct
+{
+    kal_uint8 zone;
+}PacketZoneInd;
+
+typedef struct
+{
+    kal_uint16 sid;
+    kal_uint16 nid;
+}SidNidInd;
+
+typedef struct
+{
+     kal_uint8 type;
+     kal_bool  cfgChanged;
+     kal_bool  setChanged; 
+     kal_bool  freqChanged;
+}HandOffInd;
+
+typedef struct
+{
+    kal_uint8 ssdB[8];
+}SsdbInd;
+
+typedef struct
+{
+	Scc_IndMsgType type;
+	union
+	{
+		SccDataBurstIndMsg  DbIndMsg;
+        SccServiceConfigRsp ServeConfRsp;
+        SccDisconnectInd    DisconnctInd;
+        SccReleaseInd       ReleaseInd;
+        SccServiceConfigValidate ServConfValidate;        
+        SccServiceOptiValidate   ServOptiValidate;
+        SccAlertInd         AlertInd;        
+        SccSocmInd          SocmInd;        
+        SccSocoInd          SocoInd;
+        PacketZoneInd       PZondInd;
+        SidNidInd           SidNidInd;
+        HandOffInd          HandoffInd;
+        SsdbInd             SetSsdbInd;
+		/* add code here */
+	} indMsg;
+}PswSccIndMsg;
+
+typedef struct
+{
+	Scc_ReqMsgType type;
+	union
+	{
+		SccVsOrigReqMsg VsOrigMsg;
+        SccPsOrigReqMsg PsOrigMsg;
+        SccLsOrigReqMsg LsOrigMsg;
+        SCCSwitchReqMsg SwitchMsg;
+        SCCTimerExpiry  TimerExpMsg;        
+        PZHysterActIndSet  HysterActSetMsg;
+		/* add code here */
+	} reqMsg;
+}PswSccReqMsg;
+
+typedef enum
+{
+   LOCK_ORDER,
+   UNLOCK_ORDER,
+   MAX_NUM
+} PswTstInjectEnum;
+
+
+void PswCustomLockProcedure(void);
+kal_bool cssCheckSidNidLock(void);
+void PswCustomFeatureMsg(kal_uint32 * MsgP);
+kal_bool PswIsCustomFeatureSet(kal_uint32 CustomFeatureMacro);
+void PswTransformPswMiscDataType(kal_uint8* srcData ,kal_uint8* desData);
+void PswTransformNamDataType(kal_uint8* srcData ,kal_uint8* desData);
+kal_uint16 PswTransformPswMiscDataPackedType(kal_uint8* srcData ,kal_uint8* desData);
+kal_uint16 PswTransformNamDataPackedType(kal_uint8* srcData ,kal_uint8* desData);
+kal_uint16 PswGetNamNumBytes();
+kal_uint16 PswGetPswMiscBytes();
+void PswCustomFeatureReg(PswCustomLockCallBackT* CustomReg);
+kal_uint8 PswGetDefaultRoamSetting();
+PswParmAccessResultCode PswRoamSettingBitMapHandler(kal_uint8 RoamSettingBitMap);
+kal_bool PswCustomFeatureCheck(kal_uint32  FeatureItem);
+void PswSetImsimValidStatusMsg( PswSetImsiMValidT* MsgP );
+CPState getCPState(void);
+kal_bool cpGetE911mode(void);
+kal_bool cpOtaspModeToBandChannel(kal_uint8 code, SysBandChannelT *bandCh, kal_uint8 *block);
+
+#ifdef MTK_DEV_C2K_IRAT
+kal_uint32 PswIratMd1MsgHandler(kal_uint32 MsgId, void* MsgBufferP, kal_uint32 MsgSize);
+rsvas_sim_enum rsvasGetCurrentSimId(void);
+#endif
+
+/*********************PswCustomLockDefination************************************/
+
+/*****************************************************************************
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*
+*
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /* #ifndef _PSWAPI_H_ */
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10099\1 2012-07-27 08:59:51 GMT gdeng
+** SCBP#10099 **/
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10099\2 2012-07-30 08:20:37 GMT gdeng
+** SCBP#10099**/
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10325\1 2012-09-20 06:13:14 GMT gdeng
+** SCBP#10325**/
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10325\2 2012-09-20 06:23:16 GMT gdeng
+** SCBP#10325**/
+/**Log information: \main\SMART\1 2013-04-25 09:46:39 GMT yxma
+** HREF#22182, add custom lock feature to smartfren
+|**/
+/**Log information: \main\Trophy\Trophy_zjiang_href22256\1 2013-08-21 07:39:32 GMT zjiang
+** HREF#22256.1.crts21316:Ä£¿é¶ÌÐÅ×Ô×¢²á±àÒë°æ±¾Àï´æÔÚµÄ×Ô×¢²á¶ÌÐŶàÓàÉϱ¨ÐÞ¸Ä;2.+CPINÃüÁîÓÅ»¯.**/
+/**Log information: \main\Trophy\2 2013-08-21 07:42:24 GMT cshen
+** href#22256**/
+/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:18:03 GMT xding
+** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
+/**Log information: \main\Trophy\3 2013-12-10 08:33:39 GMT jzwang
+** href#22331:Merge MMC latest implementation from Qilian branch.**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswcustom.h b/mcu/interface/protocol/as_c2k/1xrtt/pswcustom.h
new file mode 100644
index 0000000..1d96ebb
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswcustom.h
@@ -0,0 +1,476 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1997-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWCUSTOM_H_
+#define _PSWCUSTOM_H_
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+/****************************************************************************
+ *
+ * Module:    pswcustom.h
+ *
+ * Purpose:   Customer specified compile switches
+ *
+* HISTORY     :
+*     See Log at end of file
+*
+***************************************************************************/
+
+/*****************************************************************************
+ * ------- Code-Build Options ... comment/uncomment as required -------      *
+ ****************************************************************************/
+
+
+#define IS2000_REV_0 1 /* Activate all IS2000 Rev.0 SW */
+#define IS2000_REV_A 1 /* Activate all IS2000 Rev.0 SW */
+#define DSCH_NEW     1
+
+/* Release A and beyond functionality remains supported in the CBP6
+ * baseline SW as indicated by IS2000_REV_A and DSCH_NEW both being defined.
+ * This decision stems from a mixing Rel0 and Rel > A logic that has not been
+ * clearly separated using the above #defines.  However, CBP6 solution has
+ * not been verified on RelA networks and thus cannot be truly RelA compliant.
+ * Some of the RelA SW must be cleaned up in order for the SW to be optimized
+ * for Rel0 solutions.  The REMOVE_IS2000_REL_A #define was created for this
+ * purpose.  In the case where the CBP6 solution is targeted for a RelA system,
+ * REMOVE_IS2000_REL_A must be deleted or set to 0.
+ */
+#define REMOVE_IS2000_REL_A 1
+
+#ifdef IS95A
+#define T53_OR_IS95A 1
+#else /* !IS95A */
+#define T53_PLUS_OR_95B 1
+#endif
+
+/*****************************************************************************
+ * ------- Tune parameters - adjust as required                              *
+ ****************************************************************************/
+
+#ifdef MTK_PLT_ON_PC_UT
+/* Set default CCI to enabled in UT. */
+#define CP_QPCH_CCI_ENABLED_DEFAULT   KAL_TRUE
+#else
+#define CP_QPCH_CCI_ENABLED_DEFAULT   KAL_FALSE
+#endif
+
+/* Sim QPCH feature: when enabled, QPCH-like wake may occur before PCH wake
+   in networks where QPCH is disabled. QPCH PI is ignore, the QPCH wake is
+   only used for best PN selection before PCH wake. This is the default init
+   value. It can be changed at run-time and it is stored in PSW Misc DBM */
+#if defined(KDDI_EXTENSIONS)
+#define CP_SIM_QPCH_ENABLED_DEFAULT   KAL_TRUE
+#else
+#define CP_SIM_QPCH_ENABLED_DEFAULT   KAL_FALSE
+#endif
+/* dynamic QPCH enable/disable based on Pilot Ec/Io thresholds */
+#if defined(KDDI_EXTENSIONS)
+#define CP_QPCH_DYNAMIC_CTRL_ENABLED_DEFAULT   KAL_TRUE
+#else
+#define CP_QPCH_DYNAMIC_CTRL_ENABLED_DEFAULT   KAL_FALSE
+#endif
+#define CP_QPCH_DYNAMIC_CTRL_ECIO_THRESH_LOW    2609 /* -14 dB */
+#define CP_QPCH_DYNAMIC_CTRL_ECIO_THRESH_HIGH   5205 /* -11 dB */
+
+/* DFS EcIo Threshhold. DFS not started until active EcIo is weaker than threshhold */
+#if defined(KDDI_EXTENSIONS)
+#define CP_DEFAULT_DFS_ECIO_THRESH         24  /* -12.0 dB, Units -0.5dB  */
+#else /* always do DFS */
+#define CP_DEFAULT_DFS_ECIO_THRESH          0
+#endif
+
+#define CP_IC_MODE_DEFAULT  IC_NORMAL
+
+/* Min # of frames chipset must rx the action in advance of the action time */
+#if defined (MTK_CBP)
+#define CC_MIN_FRAMES_BEFORE_ACTION_TIME    1
+#else
+#define CC_MIN_FRAMES_BEFORE_ACTION_TIME    3
+#endif
+#define TC_MIN_FRAMES_BEFORE_ACTION_TIME    2
+
+/* Better service rescan after redirection in 5 minutes */
+#define REDIRECTION_END_TIME    300000L   /* 300 seconds */
+
+/* default 1x Adv Enabled */
+#define CP_1XADV_ENABLED_DEFAULT      KAL_TRUE
+/* default SO73 Control  */
+#define CP_SO73_ENABLED_DEFAULT       KAL_TRUE
+#define CP_SO73_WBENABLED_DEFAULT     KAL_TRUE
+
+/**********************************************************************/
+/***************** END CUSTOM SYSTEM SELECTION ************************/
+/**********************************************************************/
+
+/* PCH Layer 2 */
+/* Increased to 6.2 seconds  */
+#define ENG_MAX_BAD_PAGE_FRAME  310 /* 310 * 20 msec = 6.2 sec, for the access followed by idle supervsion 3 sec + 3 sec */
+
+/* this sets number of base stations for which
+ *     overhead info is stored
+ */
+#define MAX_HISTORY_RECS        7
+
+/* new Idle Handoff Parameters */
+#define THR_SLOPE_RES       2  /* Q-precision resolution of specified line slopes.
+                                  (2^-THR_SLOPE_RES)*(SPEC integer slope in dB(thresh)
+                                  /dB(Active pwr)). */
+#define THR_SLOPE_MID       2  /* (2^THR_SLOPE_RES)/2 used for slope rounding. */
+
+#define MIN_ACT_IMMED      34  /* -17.0 dB active power below the "instant" test
+                                  threshold is THR_MIN_IMMED. */
+
+#define THR_SLOPE_IMMED     1  /* Slope of instant threshold above active power
+                                  MIN_ACT_IMMED in units of dB(thresh)/dB(Active pwr)/
+                                  2^THR_SLOPE_RES. */
+#define THR_MIN_IMMED       4  /* Minimum value of the "instant" test threshold.
+                                  Units -0.5dB. */
+#define MIN_ACT_DELAYED    34  /* Minimum value of the "persistance" test threshold.
+                                  Units -0.5dB. */
+#define THR_SLOPE_DELAYED   1  /* Active power below which the "persistance" test
+                                  threshold is THR_MIN_DELAYED. */
+#define THR_MIN_DELAYED     1  /* Slope of the instant threshold above active power of
+                                  MIN_ACT_DELAYED, in units of dB(thresh)/dB(active pwr)
+                                  /2^THR_SLOPE_RES. */
+#define HO_DELAYED_IHO_COUNT 2 /* Persistence test for delayed HO
+                                  ( default: 2 consecutive search results) */
+#define NOISE_THRESHOLD    50  /* Threshold below which no neighbor pilot will be
+                                  considered a valid target for handoff, units -0.5dB */
+#define MIN_NGHBR_THR      36  /* Idle Handoff Candidates must be atleast -18.0 dB . */
+
+#if defined(MTK_CBP)
+/* Access Entry HO Parameters */
+#define CP_ACCESS_ENTRY_HO_WEAK_PILOT_STRENGTH  24  /* -12 dB */
+#else
+/* Access Entry HO Parameters */
+#define CP_ACCESS_ENTRY_HO_WEAK_PILOT_STRENGTH  14  /* -7 dB */
+#endif
+
+/* Max # of Access Slots to delay due to persistence before transmit msg */
+#define ENG_MAX_PSIST_ACCESS_SLOTS          6
+
+
+/* Default Service Option */
+
+#define CP_CUSTOM_DEFAULT_SERVICE_OPTION   3   /* Rate set 1, EVRC  */
+#define CP_CUSTOM_DEFAULT_HOME_MO_SO       3
+#define CP_CUSTOM_DEFAULT_ROAM_MO_SO       3
+#define CP_CUSTOM_DEFAULT_HOME_MT_SO       3
+
+/* Service Configuration - Maximum Number of Service Option Connections */
+#define CP_MAX_SERV_OPT_CONN_REC           2
+
+/* Maximum Service Option Control Message Record Length */
+#define MAX_SERV_OPT_CNTL_RECORD_LEN       128
+
+/* Maximum Mobile Station Supported Supplemental Code Channels */
+#define CP_MAX_SUP_CODE_CHANNELS  7
+
+/* Maximum Sizes for Messaging Elements */
+#define CP_MAX_CALLED_PARTY_NUMBER_SIZE    32  /* Called Party # record   */
+#ifdef MTK_CBP
+#define CP_MAX_CALLING_PARTY_NUMBER_SIZE   50  /* Calling Party # record  */
+#else
+#define CP_MAX_CALLING_PARTY_NUMBER_SIZE   32  /* Calling Party # record  */
+#endif
+#define CP_MAX_REDIRECTING_NUMBER_SIZE     32  /* Redirecting # record    */
+#define CP_MAX_EXTENDED_DISPLAY_SIZE       82  /* Extended Display record */
+#define CP_MAX_DISPLAY_SIZE                82  /* Display record          */
+#define CP_MAX_KEYPAD_FACILITY_SIZE        32  /* Keypad Facility record  */
+#ifdef MTK_CBP
+#define CP_MAX_SUBADDRESS_SIZE             50  /* Subaddress record       */
+#else
+#define CP_MAX_SUBADDRESS_SIZE             32  /* Subaddress record       */
+#endif
+#define CP_MAX_BURST_DTMF_DIGITS           255 /* Burst DTMF msg          */
+#define CP_MAX_DATA_BURST_CHAR             249 /* Data Burst msg          */
+                                                 /* 255 - Data Burst header */
+#define CP_MAX_CADENCE_GROUPS_REC          16
+#define CP_MAX_EXTENDED_DISPLAY_REC        3
+
+/* Traffic Channel Message Transmitter (tc_mtx.c) */
+
+/* TC Transmitter Queue Sizes */
+#define ACKQ_SIZE        8           /* TC Ack Queue Size          */
+#define MSGQ_SIZE        8           /* TC Msg Queue Size          */
+
+/* Traffic Channel Transmit Window Size */
+#define TC_TX_WINDOW_SIZE                  4
+#if ((TC_TX_WINDOW_SIZE == 0) || (TC_TX_WINDOW_SIZE > 4))
+#error "Bad TC Transmit Window Size!"
+#endif
+
+/* Minimum backoff time in frames from T2m to transmit an ACK */
+/*                                                                 **
+**       Have to take into account potential queuing delay of      **
+**       1 frame, message passing, and one frame for insurance.    **
+**       Note: An Acknowledgement Message should fit in one frame: **
+**       MSG_LENGTH + MSG_TYPE + ACK_FIELDS + ORDER +              **
+**       ADD_REC_LEN + RESERVED + CRC = 56 bits = 7 bytes          **
+**                                                                 **
+**       Mux 1 9600  bps 1/2 rate  - 88  signalling bits           **
+**       Mux 2 14400 bps 1/2 rate  - 138 signalling bits           **
+**                                                                 */
+#define TC_TX_PIGGYBACK_BACKOFF    5
+#if ((TC_TX_PIGGYBACK_BACKOFF < 3) || (TC_TX_PIGGYBACK_BACKOFF > 10))
+#error "Bad TC Transmit Piggyback Backoff!"
+#endif
+
+/* Minimum Signaling Bits Per Frame */
+/* MUX OPTION 1 (RATE SET 1) 9600 bps, 1/2 rate, Dim & Burst */
+#define TC_TX_MIN_MUX1_SIG_BITS_PER_FRAME  88
+/* MUX OPTION 2 (RATE SET 2)   14400 bps, 1/2 rate, Dim & Burst */
+#define TC_TX_MIN_MUX2_SIG_BITS_PER_FRAME  138
+
+/* Minimum Closed Loop Power Control Step Size */
+#define CP_MIN_PWR_CNTL_STEP               2
+
+/* Traffic Channel Pilot Set Maintenance */
+#define CP_T_DROP_COUNT   1
+
+/* Amount of time to inhibit Registration after a failure */
+#define CP_REG_DELAY_AFTER_FAIL 5000 /* msec */
+
+#define ACCESS_FAIL_COUNT 5
+#define DELAYED_ORIG_WAITING_TIME 70000/* time wait before abort orig attempt */
+                                       /* 70sec (similar to silent retry)     */
+/* SNR SR - Silent Retry defines. */
+#define MAX_SILENT_RETRIES     15          /* Max no of sub-attempt permitted */
+#define SILENT_RETRY_TIMEOUT   20L         /* 20ms -> 1 frame delay before Reorig */
+#define SILENT_RETRY_RESET_TIMEOUT 30000L  /* 45 Sec Failsafe Timeout to reset SR
+                                            * upon expiration.
+                                            */
+
+#ifndef OTA_MAX_MDN_DIGITS
+#define OTA_MAX_MDN_DIGITS 15
+#endif
+
+/* MAX_BCASTS is the number of broadcast messages that can be
+ *   checked for duplicates.
+ * If more than MAX_BCASTS distinct messages are received within
+ *   four broadcast cycles, messages will not be lost but duplicates
+ *   may be reported.
+ */
+#define MAX_BCASTS      10
+
+/* MAX_SINGLE_AWI_SMS_WORDS is the maximum size of a
+ * SMS message that can be received in a single
+ * ALERT_WITH_INFO_SMS message. It is in units of FVC words
+ * (each of which has 3 bytes of user data)
+ * NOTE: This must not be greater than 127 !
+ */
+#define MAX_SINGLE_AWI_SMS_WORDS 64
+
+/* MAX_ALERT_WITH_INFO_SMS_SIZE is the maximum size of an
+ * SMS message that can be received via a series of
+ * ALERT_WITH_INFO_SMS messages.
+ */
+#define MAX_ALERT_WITH_INFO_SMS_SIZE 256
+
+/* R.Sattari, 9/6/00, added defines for capability fields of the capability */
+/* information record.  Set to 1 for enabled, and to 0 for disabled */
+/* CR 6254
+   These macros are no longer needed. They are replaced by enums in
+   Ms_cap_db.h
+
+#define CP_ACCESS_ENTRY_HO_ENABLED  1
+#define CP_ACCESS_PROBE_HO_ENABLED  1
+#define CP_ANALOG_SEARCH_ENABLED    0
+#define CP_HOPPING_BEACON_ENABLED   0
+#define CP_MAHHO_ENABLED            0
+#define CP_PUF_ENABLED              0
+#define CP_ANALOG_553A_ENABLED      0
+*/
+
+/* PDCH params */
+#define CP_MAX_PDCCH_CH             8
+
+/* Default Customer Preferred Service Option */
+#define PSW_DEFAULT_LSD_SO_PREF    SERVICE_OPTION_15
+#define PSW_DEFAULT_MSD_SO_PREF    SERVICE_OPTION_33
+#define PSW_DEFAULT_ASYNC_SO       SERVICE_OPTION_12
+#define PSW_DEFAULT_FAX_SO         SERVICE_OPTION_13
+#define PSW_DEFAULT_IS126_SO       SERVICE_OPTION_2
+#define PSW_DEFAULT_MARKOV_SO      SERVICE_OPTION_32798
+#define PSW_DEFAULT_SUPL_LPBK_SO   SERVICE_OPTION_30
+#if defined(MTK_CBP) || defined(SMARTFREN_EXTENSIONS)
+#define PSW_DEFAULT_SMS_SO         SERVICE_OPTION_6
+#else
+#define PSW_DEFAULT_SMS_SO         SERVICE_OPTION_14
+#endif
+#define PSW_DEFAULT_OTASP_SO       SERVICE_OPTION_19
+#define PSW_DEFAULT_CSC_SO         SERVICE_OPTION_35
+#define PSW_DEFAULT_VOICE_SO       CP_CUSTOM_DEFAULT_SERVICE_OPTION
+
+
+#define PSW_OTAPA_NAM_LOCK_DEFAULT            OTAPA_NAM_LOCK_KEEP_BS_SETTING
+#define PSW_OTASP_POWERUP_MODE_DEFAULT        OTASP_COMPLETE_PSW_AUTO_POWERCYCLE
+
+/*****************************************************************************
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*
+ * removed!
+ * removed!
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif  /* _CUSTOM_H_ */
+/**Log information: \main\CBP80\cbp80_cshen_scbp10283\cbp80_gdeng_scbp10309\1 2012-09-13 09:10:44 GMT gdeng
+** scbp10309**/
+/**Log information: \main\SMART\1 2013-04-23 06:23:00 GMT yxma
+** HREF#22166 , add default custom service option to SMARTFREN
+|
+|**/
+/**Log information: \main\SMART\2 2013-04-24 09:44:37 GMT yxma
+** HREF#22179,modify default smartfren sms option
+|**/
+/**Log information: \main\SMART\3 2013-04-27 08:09:18 GMT yxma
+** HREF#22188  , modify smartfren primary voice so**/
+/**Log information: \main\Trophy\Trophy_gdeng_href22222\1 2013-06-08 01:22:06 GMT gdeng
+** HREF#22222**/
+/**Log information: \main\Trophy\2 2013-06-08 01:27:18 GMT cshen
+** href#22222**/
+/**Log information: \main\Trophy\Trophy_SO73\1 2013-07-09 05:09:38 GMT gdeng
+** HREF#0000 **/
+/**Log information: \main\Trophy\Trophy_SO73\2 2013-07-18 05:11:58 GMT gdeng
+** HREF#0000 enable wb 73**/
+/**Log information: \main\Trophy\4 2013-07-18 05:32:44 GMT cshen
+** href#22222**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdebug.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdebug.h
new file mode 100644
index 0000000..2d491b7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdebug.h
@@ -0,0 +1,163 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWDEBUG_H_
+#define _PSWDEBUG_H_
+/*****************************************************************************
+* 
+* FILE NAME   : pswdebug.h
+*
+* DESCRIPTION : Debug definitions for simultaion debugging
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+/*
+#include "tstapi.h"
+*/
+#include "pswerr.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+typedef struct
+{
+   kal_bool PsEnabled;
+   kal_bool SendL1dMsgToTst;
+   kal_bool TimerSimulation;
+} PswDebugT;
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+
+/* >>> Old stuff need to clean up */
+
+
+
+typedef enum
+{
+   PSW_DBM_MS_CAP_WRITE,
+   PSW_DBM_NAM_LOCK_WRITE,
+   PSW_DBM_NAM_DATA_WRITE,
+   PSW_DBM_MRU_WRITE,
+   PSW_DBM_CLEAR_MRU,
+   PSW_DBM_SAVE_LAST_SYS_MRU,
+   PSW_DBM_NAM_DATA_PROCESS,
+   PSW_DBM_MRU_DATA_PROCESS,
+   PSW_DBM_INIT_DBM,
+   PSW_DBM_NAM_DATA_READ_REQUEST,
+   PSW_DBM_MRU_READ_REQUEST,
+   PSW_DBM_MSCAP_READ_REQUEST,
+   PSW_DBM_PRL_READ_REQUEST,
+   PSW_DBM_NVM_CHANGED_BY_ETS,
+   PSW_DBM_MISC_DATA_READ_REQUEST,
+   PSW_DBM_MISC_DATA_PROCESS,
+   PSW_DBM_ERI_READ_REQUEST,
+   PSW_DBM_ERI_DATA_PROCESS,
+   PSW_DBM_MSID_WRITE,
+   PSW_DBM_SECURE_DATA_READ_REQUEST,
+   PSW_DBM_SECURE_DATA_PROCESS,
+   PSW_DBM_SECURE_DATA_WRITE,
+   PSW_DBM_SECURE_DATA_WRITE_ACK,
+   PSW_DBM_MISC_DATA_WRITE,
+   PSW_DBM_MISC_DATA_WRITE_ACK,
+   PSW_DBM_MISC_DATA_WRITE_NACK,
+   PSW_DBM_SET_MSID_IN_USE
+} PswDbmTraceIds;
+
+typedef enum
+{
+   BAND_CHANNEL_INVALID,
+   CHANNEL_TO_BLOCK
+} PswMultiBandTraceIds;
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+
+/*****************************************************************************
+* $Log: pswdebug.h $
+*
+* 07 06 2017 sue.zhong
+* [MOLY00259241] [6293][C2K]Replace with KAL data type
+* Correct copyright file header
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (1/2)
+* Revision 1.3  2004/09/28 15:23:14  chinh
+* Revision 1.2  2004/03/25 12:07:45  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.2  2003/08/28 11:28:35  bcolford
+* Update for merge.
+* Revision 1.3  2003/08/22 11:45:08  mclee
+* Uim Feature Introduction in SW Base
+* Revision 1.2  2002/06/06 14:25:15  dstecker
+* Updated copyright notice
+* Revision 1.1  2001/01/17 10:57:46  plabarbe
+* Initial revision
+* Revision 1.1  2000/10/24 21:11:43Z  fpeng
+* Initial revision
+* Revision 1.4  2000/03/31 00:18:57Z  cmastro
+* adjusted include files
+* Revision 1.3  2000/03/01 18:19:00Z  rsattari
+* Revision 1.2  1999/12/02 18:41:54Z  cdma
+* Updated comments for CBP3.0
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdef.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdef.h
new file mode 100644
index 0000000..0761300
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdef.h
@@ -0,0 +1,1016 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWDEF_H_
+#define _PSWDEF_H_
+/*****************************************************************************
+*
+* FILE NAME   :
+*
+* DESCRIPTION :
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+#include "pswapi.h"
+#include "pswpe.h"
+#include "lmdapi.h"
+#include "l1dapi.h"
+#include "valapi.h"
+#include "Ms_Cap_Db.h"
+#include "sms_data.h"
+#include "ota_data.h"
+#include "valdbmapi.h"
+
+#include "uimapi.h"
+#include "nvram_struct.h"
+
+#ifdef MTK_CBP_SYNC_OPTIMIZE
+#include "hscapi.h"
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define PSW_SET_ACTION_TIME(a) ((a) ? *(a) : SysTimeGet() + 4)
+
+/* Control debugging information flow */
+#define PSW_DBG(x)   do {} while (0)
+
+#define MON_TRACE MonTrace
+
+typedef enum
+{
+   /* Driver API */
+   WBIOS_DISTANCE_BASED_REG                     =0x00,
+   WBIOS_SLOTTED_MODE_ENABLE                    =0x01,
+   WBIOS_SLOTTED_MODE_DISABLE                   =0x02,
+   WBIOS_SLEEP                                  =0x03,
+   WBIOS_WAKEUP                                 =0x04,
+   WBIOS_SET_TIMER                              =0x05,
+   WBIOS_KILL_TIMER                             =0x06,
+   WBIOS_PILOT_ACQUIRE_ABORT                    =0x07,
+   WBIOS_PILOT_ACQUIRE_START                    =0x08,
+   WBIOS_SYNC_TO_SYSTEM_TIME                    =0x09,
+   WBIOS_SYNC_ACQUIRE_START                     =0x0A,
+   WBIOS_SYNC_ACQUIRE_ABORT                     =0x0B,
+   WBIOS_CDMA_CAND_FREQ_SEARCH_ABORT_VISIT      =0x0C,
+   WBIOS_CDMA_CAND_FREQ_SEARCH_PARM             =0x0D,
+   WBIOS_CDMA_CAND_FREQ_SEARCH_START            =0x0E,
+   WBIOS_IDLE_PILOT_SET                         =0x0F,
+   WBIOS_IDLE_CHANGE_PILOT_SET                  =0x10,
+   WBIOS_PILOT_SEARCH_WINDOW                    =0x11,
+   WBIOS_PILOT_SET                              =0x12,
+   WBIOS_PAGE_MONITOR_START                     =0x13,
+   WBIOS_PAGE_MONITOR_STOP                      =0x14,
+   WBIOS_ACCESS_MESSAGE_SEND                    =0x15,
+   WBIOS_ACCESS_MESSAGE_ABORT                   =0x16,
+   WBIOS_LONG_CODE_CHANGE                       =0x17,
+   WBIOS_PUF_PROBE_ABORT                        =0x18,
+   WBIOS_PUF_PROBE_SEND                         =0x19,
+   WBIOS_SERVICE_CONFIGURATION                  =0x1A,
+   WBIOS_SERVICE_OPTION_CONTROL_MESSAGE         =0x1B,
+   WBIOS_SERVICE_OPTION_CONTROL_ORDER           =0x1C,
+   WBIOS_SERVICE_CONFIGURATION_VALIDATION       =0x1D,
+   WBIOS_SERVICE_OPTION_VALIDATION              =0x1E,
+   WBIOS_TRAFFIC_CHANNEL_START                  =0x1F,
+   WBIOS_TRAFFIC_CHANNEL_SOFT_HANDOFF           =0x20,
+   WBIOS_TRAFFIC_CHANNEL_STOP                   =0x21,
+   WBIOS_TRAFFIC_CHANNEL_SEND_MESSAGE           =0x22,
+   WBIOS_TRAFFIC_CHANNEL_POWER_STEP             =0x23,
+   WBIOS_TRANSMITTER_CONTROL                    =0x24,
+   WBIOS_DISABLE                                =0x25,
+   ENG_RELAY_CDMA_CAND_FREQ_SEARCH_REPORT       =0x26,
+   ENG_CAND_FREQ_TIMES_MSG                      =0x27,
+   ENG_CMD_STATUS_MSG                           =0x28,
+   ENG_RELAY_PAGE_FRAME_INDICATION              =0x29,
+   ENG_RELAY_SYNC_FRAME_INDICATION              =0x2A,
+   ENG_RELAY_TC_FRAME_INDICATION                =0x2B,
+   ENG_RELAY_PILOT_MEASURE_REPORT               =0x2C,
+   ENG_RELAY_IDLE_HANDOFF                       =0x2D,
+
+   /* User Interface (VAL) API */
+   WBIOS_RETRIEVE_CHANNEL                       =0x2E,
+   WBIOS_SAVE_CHANNEL                           =0x2F,
+   WBIOS_SET_SSDA                               =0x30,
+   WBIOS_SET_SSDB                               =0x31,
+   WBIOS_INITIALIZE_AKEY                        =0x32,
+   WBIOS_SET_CALL_HIST_PARAMETER                =0x33,
+   WBIOS_SET_SID_NID_LIST                       =0x34,
+   WBIOS_SET_TMSI_ASSIGNMENT                    =0x35,
+   WBIOS_SET_ZONE_LIST                          =0x36,
+   WBIOS_DELETE_ZONE_LIST                       =0x37,
+   WBIOS_DELETE_SID_NID_LIST                    =0x38,
+   WBIOS_SET_BASE_DISTANCE_REG_INFO             =0x39,
+   WBIOS_REPORT_ALERT                           =0x3A,
+   WBIOS_REPORT_BURST_DTMF                      =0x3B,
+   WBIOS_REPORT_CP_EVENT                        =0x3C,
+   WBIOS_REPORT_CP_STATUS                       =0x3D,
+   WBIOS_REPORT_FEATURE_NOTIFICATION            =0x3E,
+   WBIOS_REPORT_FLASH                           =0x3F,
+   WBIOS_REPORT_LOCK                            =0x40,
+   WBIOS_REPORT_MAINTENANCE_REQUIRED            =0x41,
+   WBIOS_REPORT_REGISTRATION_REJECT             =0x42,
+   WBIOS_REPORT_SERVICE_NEGOTIATION_MODE        =0x43,
+   WBIOS_REPORT_START_CONTINUOUS_DTMF           =0x44,
+   WBIOS_REPORT_STOP_CONTINUOUS_DTMF            =0x45,
+   WBIOS_REPORT_SYSTEM_TIME                     =0x47,
+   WBIOS_REPORT_UNLOCK                          =0x48,
+   WBIOS_SYSTEM_ERROR                           =0x49,
+
+   /* New Funcs */
+   /* Note: these must be in sync with ETS so for now not put in */
+   /*       sorted catagory above */
+   ENG_RELAY_CP_REQUEST                         =0x4A,
+   WBIOS_SERVICE_CONFIGURATION_INITIATION       =0x4B,
+   WBIOS_ACCEPT_LONG_CODE_CHANGE_REQ            =0x4D,
+   WBIOS_TRAFFIC_CHANNEL_HARD_HANDOFF           =0x4E,
+   WBIOS_REPORT_DATA_BURST                      =0x4F,
+   ENG_RELAY_CDMA_CAND_FREQ_SEARCH_TIMES        =0x50,
+   ENG_RELAY_REPORT_STATUS                      =0x51,
+   WBIOS_MULTIPLEX_OPTION_INFORMATION           =0x52,
+   WBIOS_SERVICE_OPTION_INFORMATION             =0x53,
+   WBIOS_REVERSE_MULTIPLEX_PARAMETERS_GET       =0x54,
+   WBIOS_REVERSE_MULTIPLEX_PARAMETERS_SET       =0x55,
+   WBIOS_REPORT_REGISTRATION_ACCEPT             =0x56,
+   WBIOS_SET_RAND                               =0x57,
+   WBIOS_SYSTEM_SELECTION                       =0x58,
+   WBIOS_SC_SERVICE_CONFIGURATION_RESPONSE      =0x59,
+   WBIOS_REPORT_CP_RESPONSE                     =0x5A,
+   WBIOS_ACCEPT_VOICE_PRIVACY_CHANGE            =0x5B,
+   WBIOS_REPORT_HANDOFF                         =0x5C,
+   WBIOS_REPORT_ACCESS_MAX_CAPSULE_SIZE         =0x5D,
+   WBIOS_SC_GET_SERV_CFG_NO_CONNECTIONS         =0x5E,
+   WBIOS_SC_GET_SERVICE_OPTION_INFO             =0x5F,
+   WBIOS_PREAMBLE_OFF                           =0x60,
+   ENG_RELAY_CAND_FREQ_STOP                     =0x61,
+   ENG_RELAY_CAND_FREQ_START                    =0x62,
+   WBIOS_OUT_OF_SERVICE_AREA_SLEEP              =0x63,
+   ENG_RELAY_OUT_OF_SERVICE_AREA_PARAMETERS     =0x64,
+   WBIOS_REPORT_PWR_REP_FRAMES                  =0x65,
+   ENG_RELAY_SET_IHO_THRESHOLDS                 =0x66,
+   ENG_RELAY_SET_IHO_TIMER                      =0x67,
+   WBIOS_REPORT_CQA                             =0x68,
+   ENG_RELAY_REVERSE_MULTIPLEX_PARAMTERS        =0x69,
+
+   WBIOS_OOSA_WAKEUP                            =0x6A,
+   WBIOS_REPORT_NETWORK_P_REV                   =0x6B,
+   WBIOS_REPORT_PACKET_ZONE_ID                  =0x6C,
+   WBIOS_REQUEST_VOICE_PRIVACY_INDICATION       =0x6D,
+   ENG_RELAY_SET_NEW_IHO_PARAMETERS             =0x6E,
+
+   WBIOS_REPORT_ROAM_IND                        =0x6F,
+   WBIOS_SCC_BCAST_CNFG                         =0x70,
+   WBIOS_REPORT_BCAST_DATA_BURST                =0x71,
+   WBIOS_SCC_BCAST_EXPTED                       =0x72,
+   WBIOS_SCC_CHECK_SO_IS_HSPD                   =0x73,
+
+   ENG_RELAY_E911_MODE_ENABLE                   =0x74,
+   ENG_RELAY_E911_MODE_DISABLE                  =0x75,
+   /*AKK 03-22-00 Added search request/control message parameter */
+   ENG_RELAY_CDMA_CAND_FREQ_SEARCH_RQ_CONTROL_DATA = 0x76,
+   /*AKK 05-15-00 Added TC frame power message parameter */
+   ENG_RELAY_CDMA_CAND_FREQ_TC_FRAME_POWER_DATA    = 0x77,
+
+   /*SNR BS COORD 2/1/01 */
+   WBIOS_REPORT_BS_CO_ORD                       = 0x78,
+   WBIOS_SR_REORIG_CALL                         = 0X79,
+   WBIOS_SR_FINISHED                            = 0X7A,
+
+   WBIOS_FOR_SCH                                = 0x7B,
+   WBIOS_RSR_ALLOC                              = 0x7C,
+   WBIOS_RSR_DEALLOC                            = 0x7D,
+   WBIOS_REV_SCH                                = 0x7E,
+   WBIOS_SCC_IS_SERV_OPTION_ATTRIBUTE_AVAILABLE = 0x7F,
+   WBIOS_SCC_GET_DEFAULT_SERVICE_CONFIGURATION  = 0x80,
+   WBIOS_RESOURCE_UPDATE                        = 0x81,
+   ENG_RELAY_SET_ACCESS_HO_PARAMETERS           = 0x82,
+   WBIOS_FOR_SCH_CONFIG_UPDATE                  = 0x83,
+   WBIOS_REV_SCH_CONFIG_UPDATE                  = 0x84,
+   WBIOS_SRCH_RESULTS_COMPLETE                  = 0x85,
+   WBIOS_ENHANCED_ACCESS_MESSAGE_SEND           = 0x86,
+   WBIOS_SYNC_MSG_RECVD                         = 0x87,
+   WBIOS_CSS_VALIDATE_SYNC_MSG                  = 0x88,
+   WBIOS_AFLT_PILOT_SET                         = 0x89,
+   WBIOS_AFLT_ABORT_PILOT_SET                   = 0x8A,
+   WBIOS_FCSCH_MONITOR_STOP                     = 0x8B,
+   WBIOS_REVERSE_POWER_SET                      = 0x8C,
+   WBIOS_PREAMBLE_ON                            = 0x8D,
+   WBIOS_RESOURCE_REQ                           = 0x8E,
+   WBIOS_PWR_CTL_PARMS                          = 0x8F,
+   WBIOS_FDSCH_ACQ_IND                          = 0x90,
+   WBIOS_MULTI_PARM_GET                         = 0x91,
+   WBIOS_MULTI_PARM_SET                         = 0x92,
+   WBIOS_TC_TO_AVC_HO                           = 0x93,
+   WBIOS_PS_INFO_RSP                            = 0x94,
+   WBIOS_ACCESS_IN_PROGRESS                     = 0x95,
+   WBIOS_QPCH_CCI_DECODE                        = 0x96,
+   WBIOS_RSCH_POWER_SET                         = 0x97,
+   WBIOS_RESET_LMD_MUX_STAT_COUNTS              = 0x98,
+   WBIOS_L1D_ALT_PILOT                          = 0X99,
+   WBIOS_L1D_BAND_SUPPORTED_QUERY               = 0x9A,
+   WBIOS_CSS_INDICATE_IN_SERVICE                = 0x9B,
+   WBIOS_L1D_DEACTIVE_REQ                       = 0X9C,
+   WBIOS_L1D_RADIO_CONFIG_PARAMS                = 0x9D,
+   WBIOS_HSC_SIB8_TIMING_SYNC_REQ               = 0x9E,
+#ifdef MTK_CBP_REL_OPTIMIZE
+   WBIOS_VS_CNTD                                = 0xA0,
+   WBIOS_VS_REL                                 = 0xA1,
+#endif
+   NUM_PSW_API_ENTRIES
+} PswApiT;
+typedef enum
+{
+    POWERDOWN,
+    MSID,
+    AUTH, /* Include both Akey and SSD */
+    SPC,
+    SIP,
+    MIP,
+    INIT
+} SecureDataType;
+
+typedef enum
+{
+   NAM_DATA_ACK,
+   DATA_ACK,
+   FLUSH_ACK
+} PswDbmAckT;
+
+/* Current status */
+typedef struct
+{
+   kal_uint8  State;       /* Protocol stack state */
+   kal_uint16 Channel;     /* Frequency channel    */
+   kal_uint32 Esn;         /* ESN                  */
+   kal_uint16 PilotPn;     /* Pilot PN             */
+} PswTstStatusT;
+
+#ifdef SYS_OPTION_HL
+typedef enum
+{
+   NON_DATA_SERVICE,
+   DATA_SERVICE
+} PswDataServiceT;
+#endif
+
+typedef enum
+{
+   DBM_DATA_NOT_INITIALIZED = 0,
+   DBM_DATA_INITIALIZED
+} DbmReadStatusType;
+
+typedef enum
+{
+  PEND_REG_NONE,
+  PEND_REG_PARM_CHANGE,
+  PEND_REG_POWERUP
+} PswPendRegType;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef enum
+{
+    IRAT_MCC_REQ_INIT = 0,/* when power up,set flag to init */
+    IRAT_HAVE_MCC_REQ = 1,/* when receive PSW_IRAT_MCC_REQ,set flag to IRAT_HAVE_MCC_REQ */
+    IRAT_NO_MCC_REQ = 2,  /* when firstly receive ESPM, set flag to IRAT_NO_MCC_REQ */
+} Irat_mcc_req_enum;
+#endif /* MTK_DEV_C2K_IRAT */
+
+typedef enum
+{
+  AIRMSG_1X_PCH,
+  AIRMSG_1X_PCH_MATCHED,
+  AIRMSG_1X_PCH_MATCHED_PAGE,
+  AIRMSG_1X_FFCH,
+  AIRMSG_1X_LOC_IS801,
+  AIRMSG_1X_ACH,
+  AIRMSG_1X_RFCH,
+  AIRMSG_1X_SYNC
+} AirMsgTraceId;
+
+typedef enum
+{
+  NOT_EXISTENCE,           /* there is not limited service, and reported no existence to VAL */
+  SYSTEM_LOST_EXISTENCE,   /* system lost, but does not report no existence to VAL */
+  EXISTENCE                /* there is limited service, and reported existence to VAL */
+}LmtServiceEnum;
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+#define PSW_MAX_NUMBER_OF_TIMERS 100
+
+extern kal_bool PswTestModeTimersUsed;
+extern kal_bool PswDisplayPeriodicTraces;
+extern PswTstStatusT  PswTstStatus;        /* Current status */
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+#ifdef MTK_CBP_SYNC_OPTIMIZE
+void PswSIB8TimingSyncCnf(HscSib8TimingSyncCnfMsgT *MsgP);
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+void PswInitialAcqReportMsg(PswInitialAcqReportMsgT *MsgP);
+void PswL1dAlternatePilotsMsg(PswL1dAlternatePilotsMsgT *MsgP);
+void PswL1dAccessPreambleCompleteMsg (PswL1dAccessPreambleCompleteMsgT* MsgP);
+void PswL1dAccessProbeCompleteMsg (PswL1dAccessProbeCompleteMsgT* MsgP);
+void PswCmdStatusMsg (PswCmdStatusMsgT *MsgP);
+void PswCandFreqMeasurementsMsg (PswCandFreqMeasurementsMsgT *MsgP);
+void PswPMReportMsg (PswPmrMsgT *MsgP);
+void PswOuterLoopReportReqMsg (PswOuterLoopReportReqMsgT *MsgP);
+void PswCandFreqTimesMsg (PswCandFreqTimesMsgT *MsgP);
+void PswForwardPageChanFrameMsg (PswForwardPageChanFrameMsgT *MsgP);
+void PswForwardSyncChanFrameMsg (PswForwardSyncChanFrameMsgT *MsgP);
+void PswGetPSInfoMsg(void);
+void PswDSCHFrameMsg (PswDschFrameMsgT *MsgP);
+void PswPowerMsg (PswPowerMsgT *MsgP);
+void PswE911ModeMsg(PswE911ModeMsgT* MsgP);
+void PswCallInitiateMsg (PswCallInitiateMsgT *MsgP, kal_uint32 MsgId, kal_bool reOrig);
+#ifdef MTK_CBP
+void PswHlpDmntCnfMsg(void);
+#endif
+void PswHlpDrsUpdateIndMsg (kal_bool drs, kal_bool reconn_drs0);
+void PswReoriginateCall(void);
+void PswReoriginatePktCall(void);
+void PswSetSilentRetryMsg(PswSetSilentRetryMsgT *MsgP);
+void PswGetSilentRetryStatusMsg(PswGetSilentRetryStatusMsgT *MsgP);
+void PswGetPrlInfoMsg(PswGetPrlMsgT *MsgP);
+void PswCallAnswerMsg (void);
+void PswCallHangupMsg (void);
+void PswScanMeasurementsMsg (PswScanMeasurementsMsgT *MsgP);
+void PswPilotPwrAck (void);
+kal_bool PswGetLastDFSSearch(void);
+void PswTask(kal_uint32 argc, void *argv);
+void PswTestModeTimersUsedMsg (PswTestModeTimersUsedMsgT *MsgP);
+void PswTimerInit (void);
+void PswUimTimerCallBack(kal_uint32 DontCare);
+void PswTstAccessSigMsg(PswAccessSigMsgT *MsgDataPtr);
+void PswIdleHandoffMsg (PswIdleHandoffMsgT *MsgP);
+void PswTimerExpired( kal_uint32 TimerId );
+void PswSmsCbsInfoCfgMsg(PswSmsCbsInfoT *MsgP);
+void PswTATimerExpired( void );
+void PswKillAllTimers( void );
+void PswNamDataRead ( PswIs95NamT *DataP );
+void PswDataRead ( PswDbmDataT *DataP );
+void PswNamDataWrite(kal_bool NvmWriteThru);
+void PswValMdnUpdated(IS683DigitParms *digitParms);
+
+kal_uint32 PswGetSPC(void);
+kal_uint8 PswGetSpcRetryCount();
+void PswMsCapDbDataWrite( const MsCapDb* );
+void DbmDataMsCapDbRequest( void );
+void PswGetMsCapDb( void );
+void PswClearMRUMsg(void);
+void PswNamDataWriteAck(kal_uint8 result);
+void PswNvramWriteCnf(nvram_write_cnf_struct *msgP);
+void PswUpdateNamPreference(void);
+void PswMiscWriteAck(kal_uint8 result);
+void PswSecureDataWriteAck(kal_uint8 result);
+void PswMobileIdWriteAck(kal_uint8 result);
+void PswStaticsParms( PswStatCntMsgT *MsgP );
+void PswTstInitDbmNam( DataInitMode mode );
+void PswMsCapDbDataMsg( MsCapDb * pMsCapDb );
+void PswInitMiscDBToDefault(void);
+void PswTstHspdActiveControlHoldMsg(PswHspdActiveControlHoldMsgT* RxMsgP);
+void PswTstRevSchRequestMsg(PswRevSchRequestMsgT* RxMsgP);
+void PswRschRelInd( PswRschRelIndMsgT *MsgP );
+void PswDataBufferStatusMsg( PswDataBufferStatusMsgT *MsgDataPtr);
+void PswMsCapDataWriteAck(kal_uint8 result);
+void PswInjectHandoff( PswInjectHandoffMsgT *MsgP );
+void PswHookFlashMsg( PswHookflashMsgT* MsgP );
+void PswSendContDTMFOnMsg( PswSendContDTMFMsgT* MsgP );
+void PswSendContDTMFOffMsg( void );
+void PswSendBurstDTMFMsg( PswSendBurstDTMFMsgT* MsgP);
+void PswSetPrivacyModeMsg( PswSetPrivacyModeMsgT* MsgP );
+void PswGetPrivacyModeMsg(void);
+void PswGetFullSysTimeMsg( PswGetFullSysTimeMsgT* RxMsgP );
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+void PswDbmCryptDataRead(void);
+void PswDbmCryptDataWrite(void);
+void PswDbmCryptDataReadAck(PswDbmCryptDataT* MsgP);
+void PswDbmCryptDataWriteAck(kal_uint8 result);
+#endif
+
+void PswSetIdleHoParameters( PswSetIdleHOParmsMsgT *MsgP );
+void PswSetAccessHoParams ( PswSetAccessHOParmsMsgT *MsgP );
+void PswCssValRspMsg(PswCssValSyncRspMsgT* MsgDataPtr);
+
+kal_bool PswSetServiceOptionSupported(kal_uint16 so, kal_bool setting);
+void PswQpchPiStatusMsg(PswQpchPiStatusMsgT *MsgP);
+void PswGetNamMsg(PswGetNamMsgT *MsgP);
+void PswNamChangedMsg(PswNamChangedMsgT *MsgP);
+
+void PswGetParmMsg(ValGenericGetParmMsgT* MsgP);
+void PswSetParmMsg(ValGenericSetParmMsgT* MsgP);
+void PswUpdateNam(NamNumber namNumber);
+kal_bool PswUpdateUimNam(void);
+#if 0
+/* under construction !*/
+#endif
+kal_uint32 PswSaveChangedNamParms(PswNamChangedMsgT *MsgP);
+void PswServiceOptionControlResp (PswServiceOptionControlRespMsgT *MsgP);
+void PswDbmMiscDataRequest(void);
+
+void PswMiscDataRead(PswMiscT *DataP);
+kal_uint8 PswGetActiveNam(void);
+void PswReportActiveNam(void);
+void PswSelectActiveNam(PswSelectActiveNamMsgT* MsgP);
+void PswGetTransmitInfoMsg(void);
+void PswSetTransmitInfoMsg(PswSetTransmitInfoMsgT* msgDataPtr);
+void PswL1dAlternatePilotsMsg( PswL1dAlternatePilotsMsgT* MsgP);
+void  PswRlpCloseReq( void );
+void PswInitSecureDbMsg( void );
+void PswEnablePrlMsg( PswEnablePrlMsgT *MsgP);
+
+#ifdef SYS_OPTION_SMS_ENGINE
+void PswSmsInit( void );
+void PswSmsPrefSrvOptMsg( PswSmsPrefSrvOptMsgT *MsgP );
+void PswSmsConnectMsg( PswSmsConnectMsgT *MsgP );
+void PswSmsDisconnectMsg( PswSmsDisconnectMsgT *MsgP );
+void PswSmsSubmitParmsMsg( PswSmsSubmitParmsMsgT *MsgP );
+void PswSmsSubmitDataMsg( PswSmsUserDataMsgT *MsgP );
+void PswSmsCancelMsg( PswSmsCancelMsgT *MsgP );
+void PswSmsAckParmsMsg( PswSmsAckMsgT *MsgP );
+void PswSmsAckDataMsg( PswSmsUserDataMsgT *MsgP );
+void PswSmsTimerExpired( kal_uint32 TimerId );
+void PswSmsPeriodTimerExpired( kal_uint32 TimerId );
+void PswSmsWaitL3AckTimerExpired( kal_uint32 TimerId );
+void PswSmsWaitRspTimerExpired( kal_uint32 TimerId );
+void PswSmsBCastConnectMsg ( PswSmsBCastParmsMsgT * MsgP );
+void PswSmsBCastDisconnectMsg( void );
+void PswSmsBCastParmsMsg( PswSmsBCastParmsMsgT *MsgP );
+#if defined(LGT_EXTENSIONS)
+void PswSmsUnknownConnectMsg ( PswSmsUnknownParmsMsgT * MsgP );
+void PswSmsUnknownDisconnectMsg( void );
+void PswSmsUnknownParmsMsg( PswSmsUnknownParmsMsgT *MsgP );
+#endif
+void PswSmsTerminalStatusMsg( PswSmsTerminalStatusMsgT *MsgP );
+void PswSmsRetxAmountMsg( PswSmsRetxAmountMsgT *MsgP);
+void PswSmsCauseCodeMsg( PswSmsCauseCodeMsgT *MsgP );
+void PswSmsGetDialInfo(SMS_ADDR *smsInfo);
+void PswSmsReplyTlAckMsg(PswSmsReplyTlAckMsgT *MsgP);
+kal_bool PswSmsIsTeleServiceConnected(kal_uint16 TeleServ);
+void PswSmsResendTimerExpired( kal_uint32 TimerId );
+void PswSmsMoRelTimerExpired( kal_uint32 TimerId );
+void PswSmsMmsTimerExpired( kal_uint32 TimerId );
+void PswSmsCap(UimGetSmsCapRspMsgT *MsgP);
+#ifdef MTK_PLT_ON_PC_UT
+void PswSendSmsConfirm(PswSendSmsConfirmMsgT *MsgP);
+#endif
+void PswSmsMutliModeMsg(PswSMSModeMsgT * MsgP);
+
+void PswSmsTlAckReqMsg(PswSMSTlackReqMsgT *MsgP);
+#endif
+
+void PswDsEnableMsg(PswDsEnableMsgT *MsgDataPtr);
+void PswDataPrefReqMsg(PswDataPrefReqMsgT *MsgDataPtr);
+void PswVsDsPreArangMsg(PswVsDsPreArangMsgT *MsgDataPtr);
+void PswVsPrefReqMsg(PswVsPrefReqMsgT *MsgDataPtr);
+void PswLsPrefReqMsg(PswLsPrefReqMsgT *MsgDataPtr);
+void PswSmsPrefReqMsg(PswSmsPrefReqMsgT *MsgDataPtr);
+void PswSmsRelReqMsg(void);
+void PswSmsTxReqMsg(PswSmsTxReqMsgT *MsgDataPtr);
+
+void PswOtaspRcvdMsg(PswOtaspRcvdMsgT *MsgDataPtr);
+void PswOtaspReleaseMsg(void);
+void PswOtaspTxReqMsg(PswOtaspTxReqMsgT *MsgDataPtr);
+void PswOtaspSoPrefMsg(PswOtaspSoPrefMsgT *MsgDataPtr);
+void PswOtaSetPowerUpModeMsg(PswOtaSetPowerUpModeMsgT *MsgDataPtr);
+void PswOtaSPLUnlockFailMsg(void);
+void PswVsSwitchSoMsg(PswVsSwitchSoMsgT *MsgDataPtr);
+void PswModExpMSResMsg(PswModExpMSResultMsgT *MsgDataPtr);
+void PswModExpBSResMsg(PswModExpBSResultMsgT *MsgDataPtr);
+void PswIOTAIS683Msg(PswIOTAIS683MsgT *MsgDataPtr);
+void PswIOTAPRLMsg(PswIOTAPRLMsgT *MsgDataPtr);
+void PswLocPrefReqMsg(PswLocPrefReqMsgT *MsgP);
+void PswSetServiceConfigMsg(PswSetServiceConfigMsgT *MsgDataPtr);
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+void PswSetServiceConfigReqMsg(PswSetServiceConfigReqMsgT *MsgP);
+#endif
+void PswSetPkzidHysterTmrMsg(PswSetPkzidHysterTmrMsgT *MsgDataPtr);
+void psSccUpdateSO (kal_uint16);
+void psSccSetPktCallInitMsgSaved(OrigParms *origP);
+/* service configuration */
+kal_uint8* PswSupportedMuxOptGet( void );
+void PswServNegotationSrvConfigSet( kal_uint16 SrvOpt );
+
+/* conversion routines */
+SysActionTimeT ActTime_ConvPEToSys (WbiosSystime *PeTime);
+
+L1dNghbrSearchModeT CandFreqNghbrSearchMode_ConvPEToL1d (kal_uint8 Mode);
+LmdMsgPriorityT MsgPriority_ConvPEToLmd (Priority Priority);
+SysMultiplexOptionT MultiplexOption_ConvPEToLmd (MultiplexOption MuxOpt);
+MultiplexOption MultiplexOption_ConvLmdToPE ( SysMultiplexOptionT MuxOpt );
+L1dPagingDataRateT PagingDataRate_ConvPEToL1d (PageChRate Rate);
+LmdRatesT Rates_ConvPEToLmd( kal_uint8 Rates );
+LmdRTCTrafficT RTCTrafficType_ConvPEToLmd( RTCTraffic rtcTraffic1 );
+LmdServiceOptionT ServiceOption_ConvPEToLmd (kal_uint16 ServOpt);
+PswEngineTestModeMsgT TestMode_ConvEtsToPE( PswTestModeT Mode );
+LmdTrafficTypeT TrafficType_ConvPEToLmd (TrafficType TrafficType);
+L1dTxControlT TxControl_ConvPEToL1d( TXControl txControl );
+ValNumberTypeT NumberType_ConvPEToVal( NumberType NumType );
+ValNumberPlanT NumberPlan_ConvPEToVal( NumberPlan NumPlan );
+ValPresentationIndicatorT PresInd_ConvPEToVal( PresentationIndicator Pi );
+ValScreeningIndicatorT ScreenInd_ConvPEToVal( ScreeningIndicator Si );
+ValSignalTypeT SignalType_ConvPEToVal( SignalType SignalType );
+ValAlertPitchT AltertPitch_ConvPEToVal( AlertPitch AlertPitch );
+ValRptCpEventT Event_ConvPEToVal( kal_uint8 Event );
+Css1xRptCpEventT Event_ConvPEToCss( kal_uint8 Event );
+ValCPStateT ReportStatusState_ConvPEToVal( CPState State );
+kal_uint8 RequestMode_ConvPswToPE( PswRequestModeT Mode );
+kal_uint16 ServiceOption_ConvPswToPE (kal_uint16 ServOpt);
+NumberType NumberType_ConvPswToPE( PswNumberTypeT NumType );
+NumberPlan NumberPlan_ConvPswToPE( PswNumberPlanT NumPlan );
+
+/* Location Services */
+void PswLocSlottedVeto(kal_bool veto);
+void PswLocAfltRsltInd(void);
+void PswIS801SessionStartMsg(PswIs801SessionStartMsgT *MsgDataPtr);
+void PswIS801TCPBRevDataRespInfoMsg(PswIs801TcpBRevDataRespMsgT *MsgDataPtr);
+void PswIS801EphAlmSysTimeMsg(PswIs801EphAlmSystimeMsgT* MsgDataPtr);
+void PswIS801TCPBFwdDataRespInfoMsg(PswIs801TcpbFwdDataRespInfoMsgT* MsgPtr);
+void PswPosRejectMsg(PswPosRejectMsgT* MsgPtr);
+void PswAfltMeasurementsMsg (PswPosAfltMeasurementMsgT *MsgP);
+void PswAfltPpmReqMsg(VAL_LCS_PPM_REQ_T *req);
+void PswAfltAckAbortMsg (PswPosAfltAckAbortMsgT *MsgP);
+void PswAfltAbortReqMsg (PswPosAfltAbortReqMsgT *MsgDataPtr);
+void PswIS801CancelReqMsg(PswIs801SessCancelReqMsgT *MsgDataPtr);
+void PswPdeSessionAbortReqMsg(void);
+void PswPdePseudorangeMsmtRspMsg(PswPseudorangeMsmtRspMsgT *MsgP);
+void PswPdeSessionEndRspMsg(void);
+void PswPdeGPSInopMsg(void);
+void PswGPSEnableReportsMsg(PswGPSEnableReportsMsgT *MsgP);
+kal_bool PswLocGoodN1MsgSENT(void);
+kal_bool PswLocCDMAKeepAlive(void);
+kal_uint8 PswLocN1GoodFrames(void);
+void PswLocSendN1GoodMsg(void);
+void PswLocSendPSMMIndication(void);
+void PswLocHOCompleteInd(void);
+void PswGpsDebugInfoMsg(PswGpsDebugInfoCmdMsgT* MsgDataPtr);
+void PswIs801GetSectorInfoMsg(void);
+void PswIS801TcpConnStatusMsg(PswIs801TcpConnStatusMsgT* MsgP);
+void PswLocStateChangeTestCmd(PswLocStateChangedMsgT* MsgP);
+void PswIs801SessTimerExpMsg(void* MsgDataPtr);
+void PswIs801PpmTimerExpMsg(void* MsgDataPtr);
+void PswIs801PrmTimerExpMsg(void* MsgDataPtr);
+void PswIs801PrefRespQualTimerExpMsg(void* MsgDataPtr);
+void PswIs801OutReqTimerExpMsg(void* MsgDataPtr);
+void PswLecLocRspMsg(PswLocRspDataT * MsgDataPtr);
+void PswLecGpsReadyMsg(void);
+void PswIs801ResetAssisMsg(PswGpsResetAssistMsgT* MsgDataPtr);
+void PswLecNmeaStreamMsg(PswGpsNmeaStreamMsgT* MsgDataPtr);
+void PswIS801MssDoneMsg(PswIs801MssDoneMsgT* MsgDataPtr);
+void PswIs801RestartMsg(PswValRestartMsgT* MsgDataPtr);
+void PswLocStartModeSetMsg(PswLocStartModeSetMsgT* MsgDataPtr);
+void PswLocFixModeGetMsg(PswValLocFixModeGetMsgT * MsgDataPtr);
+void PswIs801NmeaOutputSettingMsg(PswIs801NmeaOutputSettingMsgT* MsgDataPtr);
+void PswIs8011xNeworkAvail(void);
+void PswIs801SendUpdatedAfltPilotSet(kal_uint32 Sess_Id);
+void PswLecFrameSyncDoneMsg(void);
+void PswLecCdmaSystemReqMsg(void);
+void PswUserModeMsg(void);
+void PswTestModeMsg(void);
+void PswLtsModeMsg(void);
+void PswIs801AssistReqMsg(PswAssistReqT* MsgDataPtr);
+void PswIs801MpcConnStatusMsg(PswIs801MpcConnStatusMsgT* MsgDataPtr);
+void PswIs80160SecTimerMsg(void);
+void PswLecCdmaSystemReadyReqMsg(void);
+void PswIs801CustomerSettingMsg(PswIs801CustomerSettingMsgT* MsgDataPtr);
+void PswLecSessionEndRspMsg(PswLecSessionEndRspMsgT* MsgDataPtr);
+void LocRcvMsgInd(kal_uint8 *data, kal_uint16 length);
+void LocSetPrivacyMode(kal_bool mode);
+
+/* Test routines */
+void PswTstStatusRequest(void);
+void PswGetDebugScreenInfo(PswDebugScrnRequestMsgT* RxMsgP);
+void PswDebugScreenInfoResponse(kal_uint32 MsgId, void *MsgDataPtr);
+void PswPilotStrengthDebugInfo(PswDebugPilotStrengthMsgT *RxMsgP);
+void PswSendPilotStrengthDebugInfo(void);
+void PswNotifySrvStatusToUpperLayer(void);
+void PswEndE911CallReq(void);
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+void PswEncryptVoiceReqMsg(void);
+#endif
+
+void PswEngineTestModeMsg (PswEngineTestModeMsgT *MsgP);
+void PswStatusResponse(kal_uint32 MsgId, void *MsgDataPtr);
+kal_bool PswGetETSStatusTrigger(void);
+void PswSetPowerLevelIndex(kal_uint8 PLevelIndex);
+void PswPhoneStateRequest(PswPhoneStateRequestMsgT* RxMsgP);
+void PswGetPRevInUseMsg(void);
+/* */
+void PswEnterAKeyMsg (PswEnterAKeyMsgT *MsgP);
+void PswForceAnalogModeMsg(void);
+void PswGetRetrievableStatistics(PswGetRetrievableParameterMsgT *msgDataPtr);
+void PswSetRetrievableStatistics(PswSetRetrievableParameterMsgT * MsgDataPtr);
+void PswTstPowerControlMsg(PswTestPowerControlMsgT* MsgP);
+void PswWriteMDNMsg ( PswWriteRawMDNMsg* );
+void PswSetLostScanPingFrequencyMsg(PswSetLostScanPingFrequencyMsgT *MsgP);
+
+#define PswTstStatusStateSet(a)       PswTstStatus.State   = (a)
+#define PswTstStatusChannelSet(a)     PswTstStatus.Channel = (a)
+#define PswTstStatusEsnSet(a)         PswTstStatus.Esn     = (a)
+#define PswTstStatusPilotPn(a)        PswTstStatus.PilotPn = (a)
+
+#define PSW_MAX_SPY_LEN               64
+
+extern UiccCardStatusType PswUimGetUimCardStatus(void);
+void PswUimAuthResultMsg( UimRspToPsMsgT* msgDataPtr);
+void PswUimBSChallengeMsg( UimRspToPsMsgT* msgDataPtr);
+void PswUimConfirmSSDMsg( UimRspToPsMsgT* msgDataPtr);
+void PswUimStatusNotifyMsg(UimNotifyMsgT* MsgP);
+UimNamT* GetUimNam(void);
+void PswUiccFactoryModeMsg(PswUiccFactoryModeMsgT* MsgP);
+kal_bool PswUiccGetFactoryMode(void);
+
+#ifdef MTK_PLT_ON_PC_UT
+void PswForwardPageChanMsg (FcschMessage *MsgP);
+void PswForwardSyncChanMsg (SyncChannelMessage *MsgP);
+void PswForwardTrafficChanMsg (FTCMessage *MsgP);
+#ifdef MTK_DEV_C2K_IRAT
+void PswSetIratParam(PswSetIratParamMsgT *MsgP);
+#endif
+#endif
+CPState rxPCNM    (FTCMessage* msg, CPState currentState);
+void PswWriteRawIMSIMsg(PswWriteRawIMSIMsgT* MsgP);
+void PswReadRawIMSIMsg(void);
+void PswSlottedVetoMsg( PswSlottedVetoMsgT *MsgP );
+void PswOosaWakeupIndMsg(PswOosaWakupIndMsgT* MsgP);
+/*CSS message handle*/
+void PswCssSelectRspMsg(PswCssSelectRspMsgT* MsgP);
+void PswCssValdateRspMsg(PswCssValidateRspMsgT* MsgP);
+void PswCssOosaContSleepReqMsg(PswCssOosaSleepReqMsgT* MsgP);
+void PswCssSysAcqReqMsg(PswCssSysAcqReqMsgT* MsgP);
+void PswCssAcqAbortReqMsg(void);
+void PswCssOosaSleepReqMsg(PswCssOosaSleepReqMsgT* MsgP);
+void PswCssOosaWakeupReqMsg(void);
+void PswCssOtaspScanFinishedMsg(void);
+
+kal_bool PswIsMobileIDSetInDBM( void );
+void PswGetMobileID(PswGetMobileIDMsgT* MsgP);
+void PswCl1tstGetMobileID(void);
+void PswVerifySPC(PswVerifySPCMsgT* MsgP);
+void PswSetMobileID(PswSetMobileIDMsgT* MsgP, PswSetMobileIdType SetType);
+MobileIDType PswGetMobileIDType( void );
+kal_uint8* PswGetMeidInUsePtr(void);
+kal_uint8* PswGetMeidInDbPtr(void);
+kal_uint32 PswGetEsnInUse( void );
+void PswSetSIPpassword(PswSetSIPpasswordMsgT* MsgP);
+void PswGetSIPpassword(PswGetSIPpasswordMsgT* MsgP);
+void PswGetMIPkeys(PswGetMIPkeysMsgT* MsgP);
+void PswSetSecureData(SecureDataType Type, kal_bool RspNeeded);
+void PswWriteMobileId(void);
+void PswReadMobileId(void);
+void PswSetSpc(PswSetSPCMsgT* MsgP);
+void PswGetSPCMsg(void);
+void PswDumpSecureData(void);
+void PswInitSecureDb(void);
+void PswSetPrlEnableMsg( PswEnablePrlMsgT  *PswPrlMsg);
+void PswCpBCToCdmaBC(void);
+void PswCpBCToCdmaBCMsg(void);
+kal_uint8 PswGetNamBCIndex(SysCdmaBandT band);
+#if 0
+/* under construction !*/
+#endif
+void PswDbmSetBandInfo(void);
+void PswSetA21MobileSubInfo(void);
+kal_uint32 PswDbmGetSubClassMask(SysCdmaBandT band);
+void PswHlwMipKeysUpdateMsg(void);
+void PswSetSIPpasswordMsg( PswSetSIPpasswordMsgT *MsgP );
+void PswGetSIPpasswordMsg( PswGetSIPpasswordMsgT *MsgP );
+void PswGetMIPkeysMsg( PswGetMIPkeysMsgT *MsgP );
+void PswSetSpcMsg( PswSetSPCMsgT *MsgP );
+void SetNamPrlEnable(kal_bool PrlEnable);
+PswPendRegType PswGetPendingReg(void);
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+void PswGetServiceConfigMsg(void);
+void PswUpdateDefineRcForAllService(kal_bool defineRcForAllSo, kal_uint8 forRc, kal_uint8 revRc);
+void PswSetDefineRc(kal_bool defineRcForAllSo, kal_uint8 forRc, kal_uint8 revRc);
+#endif
+void PswSaveMiscDB(void);
+void PswSetPendingReg(PswPendRegType type);
+DbmReadStatusType PswDbmGetDbmDataReadStatus(void);
+void PswDbmSecureDataRequest(void);
+void PswSetFlyMode(PswFlyModeMsgT *PswFlyModeMsg);
+void PswManualAvoidMsg(void);
+#ifdef MTK_DEV_C2K_IRAT
+void PswIratMccReqMsg( void );
+void PswIratCurSysMeasReqMsg( void );
+void PswIratSignalMonitorReqMsg(PswIratRATSigMonReqT* MsgP);
+void PswCssForcePowerDownMsg( void );
+void PswCssDeacInd( void );
+#endif /* MTK_DEV_C2K_IRAT */
+#ifdef FIELD_TEST_DATA
+void PswResetFTDPara(void);
+#endif
+kal_bool IsPswSOEnabled(kal_uint16 so);
+void PswNstPowerupMsg( PswNstPowerupMsgT *MsgP );
+void PswNstTransmitTchMsg( PswNstTransmitTchMsgT *MsgP );
+void PswNstExitTestModeMsg( PswNstExitMsgT *MsgP );
+void PswNstListSetMsg( PswNstListSetMsgT *MsgP );
+void PswNstTchFerCfgMsg( PswNstTchFerCfgMsgT *MsgP );
+void PswNstRxPwrReqMsg( PswNstRxPwrReqMsgT *MsgP );
+void PswNstRxPwrCnfMsg( L1dNstRxPwrCnfMsgT *MsgP );
+void PswNstRxPwrReqNackMsg( void);
+void PswNstTxPwrLevelSetMsg( PswNstTxPwrLevelSetMsgT *MsgP );
+void PswNstPowerupAckMsg( kal_uint8  result );
+void PswNstTransmitTchAckMsg( kal_uint8  result );
+void PswNstTchFerCfgCnfMsg( kal_uint32 badF, kal_uint32 totalF);
+kal_uint16 PswGetPrefHomeMOServiceOption(void);
+kal_uint16 PswGetPrefHomeMTServiceOption(void);
+kal_uint16 PswGetPrefRoamMOServiceOption(void);
+kal_bool PswGetCurrentVoiceService(void);
+void PswSetEmergenceCardInit(kal_uint8* MsgP);
+kal_bool PswGetCurrentDdtmMode(void);
+void PswValSetDdtmMsg(PswValSetDDTMMsgT *MsgP);
+PswPhyICModeT PswDbmGetICMode(void);
+void PswRegResumeMsg(void);
+
+#ifdef MTK_DEV_C2K_IRAT
+void PswRsvasVirtualSuspendReqMsg(void);
+void PswRsvasResumeReqMsg(void);
+void PswRsvasOccupyIndMsg(void);
+void PswLocalReleaseMsg(void);
+void PswL1dRakeDdlCnfMsg(void);
+void PswC2KLteCSFBCnfMsg(void);
+#endif
+
+void PswL1dDeactiveCnfMsg(void);
+void PswGetSSDCmdMsg(void);
+void PswSetPrefTestSO(PswSetServiceConfigMsgT *MsgDataPtr);
+void PswSetSoSupportMsg(PswSetSoSupportMsgT *MsgP);
+void PswL1dOosaCnfMsg(void);
+void PswL1dInitCnfMsg(void);
+
+#if defined(MTK_DEV_SLT)
+void SltInitVerifyResult (void);
+void Psw1xSltVerifyResultIndMsg(SltVerifyResultMsgT *MsgP);
+void PswDoSltVerifyResultIndMsg(SltVerifyResultMsgT *MsgP);
+#if defined(MTK_DEV_SLT_ON_RF_GENERATOR)
+void PswL1dSltTxVerifyIndMsg(PswL1dSltTxVerifyIndMsgT* MsgP);
+#endif
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+void PswSetKskeyReqMsg(PswKeyReqMsgT* KeyReqMsg);
+void PswClearTempKeyReqMsg(void);
+void PswCancelCipherSmsSendReqMsg(PswCancelCipherSmsSendReqT* CipherSmsReqMsg);
+#endif
+
+#endif
+void PswValFlightModeMsg(void);
+void PswTstInjectStringMsg(PswTstInjectEnum tstInject);
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+void PswEngineTestModeGetReqMsg (PswEngineTestModeGetReqMsgT *MsgP);
+#endif
+
+
+/*****************************************************************************
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10325\1 2012-09-14 09:34:48 GMT gdeng
+** HREF#10325**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdhapi.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdhapi.h
new file mode 100644
index 0000000..a6222fd
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdhapi.h
@@ -0,0 +1,127 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:		pswdhapi.h
+ * Project: 		Diffie Hellman
+ * Original Author: 	Dan Doucette
+ * Creation Date:		Oct. 5, 1999
+ *
+ * Description:		Declares the functions required by the user to 
+ * 						calculate the diffie hellman encryption formula
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: pswdhapi.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ * Revision 1.2  2004/03/25 12:07:46  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:21  fpeng
+ * Initial revision
+ * Revision 1.2  2002/06/06 14:25:27  dstecker
+ * Updated copyright notice
+ * Revision 1.1  2001/07/23 11:34:52  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 11:23:59  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 00:08:14Z  mclee
+ * Initial revision
+ * Revision 1.0  1999/12/02 14:29:40  danfeng hong
+ *   Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef DH_API_H_
+#define DH_API_H_
+
+#include "pswdhdata.h"
+#include "pswdhmath.h"
+
+#ifdef WIN_TEST
+
+
+/*  #define ASSERT(f) assert(f)\ */
+/*
+#else
+  #include "tracemac.h"
+*/
+#endif
+
+/*
+ * 	Function calculates g^x mod p and places the result in 'result'
+ *
+ * 	Conditions:  assume  g <p
+ */
+void dhCalc(DHGiantInt *result, DHGiantInt *g, DHGiantInt *x, DHGiantInt *p);
+
+void dhKeyCalc(DHEncryptVal *r, DHEncryptVal *g, DHGiantInt *x, DHEncryptVal *p);
+
+void dhEncryptValGet(DHEncryptVal * val, kal_int16 bits);
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdhdata.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdhdata.h
new file mode 100644
index 0000000..e90ef45
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdhdata.h
@@ -0,0 +1,176 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       pswdhdata.h
+ * Project:				  Diffie Hellman
+ * Original Author: Dan Doucette
+ * Creation Date:   Oct. 5 1999
+ *
+ * Description:  	Defines data types used in the calculation of the
+ *						Diffie Hellman exponent
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ * Web: http://www.isotel.com
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: pswdhdata.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ * Revision 1.2  2004/03/25 12:07:47  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:21  fpeng
+ * Initial revision
+ * Revision 1.2  2002/06/06 14:25:29  dstecker
+ * Updated copyright notice
+ * Revision 1.1  2001/07/23 11:35:29  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 11:24:29  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 00:08:49Z  mclee
+ * Initial revision
+ * Revision 1.0  1999/12/02 14:27:20  danfeng hong
+ *   Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DH_DATA_H
+#define _DH_DATA_H
+
+#include "pswdhtune.h"
+
+/*
+ * 	Definition of the type of block used for the storage of the
+ * 	giant integers
+ */
+typedef kal_uint16 DHBlockType;
+typedef kal_uint32 DHCarryBlockType;
+typedef kal_int32  DHBorrowBlockType;
+
+/*
+ * 	Define the maximum possible value for the DHBlockType
+ */
+#define DH_MAX_BLOCK_VALUE 0xffff
+
+#define DH_MAX_CARRY_BLOCK_VALUE 0xffffffff
+
+/*
+ * 	Number of bits in each block
+ */
+#define DH_BIT_SIZE (sizeof(DHBlockType)*8)
+
+/*
+ *  Number of half bytes in each block
+ */
+#define DH_HALF_kal_uint8_SIZE (sizeof(DHBlockType)*2)
+
+/*
+ * 	Number of bytes in each block
+ */
+#define DH_kal_uint8_SIZE (sizeof(DHBlockType))
+
+/*
+ * 	Number of blocks required to make a giant integer using the above
+ * 	block size. Eg. 32 blocks @ 16 bits per block = 512 bit integer
+ */
+#define DH_MAX_BLOCKS (DH_KEY_BIT_SIZE+DH_BIT_SIZE-1)/DH_BIT_SIZE
+
+/*
+ * extra blocks to hold extra 32 bits of giant Integers during calculations.
+ */
+ /*
+#define DH_EXTRA_BLOCKS ((32+DH_BIT_SIZE-1)/DH_BIT_SIZE)
+ */
+#define DH_EXTRA_BLOCKS 6
+
+/*
+ * 	Number of bytes required to make a giant integer using the above
+ * 	block size.
+ */
+#define DH_MAX_kal_uint8S  (DH_KEY_BIT_SIZE+7)/8
+
+/*
+ * generic giant integer types (right-adjusted: LS bit is at 0 bit of 0 byte,
+ *                                              MS bit is in size-1th block)
+ * Each has extra blocks(32 bits) to accommodate larger accumulation and shift values
+ */
+typedef struct {
+	kal_int16       size;
+	DHBlockType number[DH_MAX_BLOCKS+DH_EXTRA_BLOCKS];
+} DHGiantInt;
+
+/*
+ * generic encryption value types (left-adjusted: MS bit is at 7th bit of 0 byte)
+ * value -- hold a byte stream of the encryption value;
+ * bits -- points out how many bits are actual used in the byte stream
+ */
+typedef struct{
+  kal_int16       bits;
+  kal_uint8        value[DH_MAX_kal_uint8S];
+}DHEncryptVal;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdhmath.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdhmath.h
new file mode 100644
index 0000000..0bb0278
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdhmath.h
@@ -0,0 +1,208 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:		pswdhmath.h
+ * Project: 		Diffie Hellman
+ * Original Author:	Dan Doucette
+ * Creation Date:		Oct. 5, 1999
+ *
+ * Description:		Defines the generic math functions used in the 
+ * 						calculation of the diffie hellman exponent
+ * 						
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: pswdhmath.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ * Revision 1.2  2004/03/25 12:07:47  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:21  fpeng
+ * Initial revision
+ * Revision 1.2  2002/06/06 14:25:30  dstecker
+ * Updated copyright notice
+ * Revision 1.1  2001/07/23 11:36:09  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 11:24:44  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 00:09:22Z  mclee
+ * Initial revision
+ * Revision 1.0  1999/12/02 14:28:50  danfeng hong
+ *   Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DH_MATH_H
+#define _DH_MATH_H
+
+/*
+ *  convert a DHEncryptVal value to a DHGiantInt value
+ */
+void dhGiantIntAssign(DHGiantInt *dest, DHEncryptVal *src);
+
+/*
+ *  convert a DHGiantInt value to a DHEncryptVal value
+ */
+void dhEncryptValAssign(DHEncryptVal * dest, DHGiantInt *src);
+
+/*
+ * r = (m1*m2)%p
+ */
+void dhMulMod(DHGiantInt *r, DHGiantInt* m1, DHGiantInt * m2, DHGiantInt *p);
+
+/*
+ * r = (m1*m2)%p with optimization, need much more memory space than dhMulMod(),
+ * the method is called only when DH_EXTRAMEM macro is defined in dh_tune.h
+ */
+void dhMulModOpti(DHGiantInt *r, DHGiantInt* m1, DHGiantInt * m2, DHGiantInt *p, kal_int16 type);
+
+/*
+ * r = r%p
+ */
+void dhMod(DHGiantInt *r, DHGiantInt *p);
+
+/*
+ * r = mul1*mul2
+ */
+void dhMul(DHGiantInt *r, DHGiantInt* mul1, DHGiantInt * mul2);
+
+/*
+ * r = m1*block
+ */
+void dhMulBlock(DHGiantInt *r, DHGiantInt* m1, DHBlockType block);
+
+/*
+ * r += acc
+ */
+void dhAccFrom(DHGiantInt *r, DHGiantInt *acc);
+
+/*
+ * r -= dec;  assume r>=dec
+ */
+void dhDecFrom(DHGiantInt *r, DHGiantInt *dec);
+
+/*
+ * 	returns:
+ * 		1 if a > b
+ * 		0 if a == b
+ * 	 -1 if a < b
+ */
+kal_int16 dhCompare(DHGiantInt *a, DHGiantInt *b);
+
+/*
+ * KAL_TRUE if num's value is 0, KAL_FALSE otherwise
+ */
+kal_bool dhEquals0(DHGiantInt *num);
+
+/*
+ * KAL_TRUE if num's value is 1, KAL_FALSE otherwise
+ */
+kal_bool dhEquals1(DHGiantInt *num);
+
+/*
+ * get size of the num's Most Significant Block
+ */
+kal_int16 dhGetDHGiantIntSize(DHGiantInt * num);
+
+/*
+ * left shift blocks DHBlockType of num
+ */
+void dhBlocksShiftLeft(DHGiantInt *num, kal_int16 blocks);
+
+/*
+ * left shift bits of num
+ */
+void dhBitsShiftLeft(DHGiantInt * num, kal_int16 bits);
+
+/*
+ * right shift bits of num
+ */
+void dhBitsShiftRight(DHGiantInt *num, kal_int16 bits);
+
+/*
+ * get how many half bytes are in num's Most Significant block
+ */
+kal_int16 dhGetMSHalfBytesNum(DHGiantInt *num);
+
+/*
+ * get how many half bytes are in num's value
+ */
+kal_int16 dhGetHalfBytesNum(DHGiantInt *num);
+
+/*
+ * block = halfs half bytes from num starting from MS block
+ */
+void dhGetHighestHalfBytes(DHCarryBlockType *block, DHGiantInt *num, kal_int16 halfs);
+
+/*
+ * set a set of accessory fields of public modulus, mostly used by dhMulMod() to
+ * speed up performance
+ */
+void dhSetPHalfs(DHGiantInt *p);
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdhtr.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdhtr.h
new file mode 100644
index 0000000..1157eb3
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdhtr.h
@@ -0,0 +1,128 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _DH_TR_H_
+#define _DH_TR_H_ 1
+
+/*
+*/
+
+#ifdef MTK_PLT_ON_PC
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "itrace.h"
+#endif
+
+#ifdef TRACEON
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "itrace.h"
+
+#define MYENGINENAME "dh_api"
+#define MYENGINEID   DH_API_ID
+
+#include "tokens.h"   /* include numeric tokens if tracing is enabled */
+
+/*****************************************************************************
+ * Trace definitions
+ ****************************************************************************/
+
+/* Available trace categories */
+typedef enum
+{
+    CAT_ERROR=0,              /* Errors must be category 0 for all engines */
+    CAT_DH
+} TraceCategory;
+
+/* this value is the number of categories listed above */
+#define NUM_TRACE_CATEGORIES  2
+
+/* If you get this #error Change MAX_NUM_TRACE_CATEGORIES in itrace.h */
+/*
+#if (NUM_TRACE_CATEGORIES > MAX_NUM_TRACE_CATEGORIES)
+#error DH_API_ID has too many trace categories!
+#endif */
+
+/* Following are the ID definitions for each file to include as 'MyNameID'
+   All entries are unique. The ID tag is associated with the filename.*/
+
+#define DH_API_ID      	1
+#define MAX_MODULEID    1     
+
+
+#endif   /* TRACEON */
+
+#ifndef ASSERT
+#ifdef SYS_DEBUG_FAULT_FILE_INFO
+
+void engAssert (const ProtocolEngineID engineId, const kal_uint8 moduleId,
+                const char *filename, unsigned line);
+#ifndef MTK_PLT_ON_PC
+#define ASSERT(expr) if (!(expr)) \
+  engAssert(MYENGINEID, MyNameID, __MODULE__, __LINE__)
+#endif
+
+#else
+
+void engAssert (const ProtocolEngineID engineId, const kal_uint8 moduleId,
+                unsigned line);
+
+#define ASSERT(expr) if (!(expr)) \
+  engAssert(MYENGINEID, MyNameID, __LINE__)
+
+#endif /* SYS_DEBUG_FAULT_FILE_INFO */
+#endif
+
+/*****************************************************************************
+ * Trace macro definitions
+ ****************************************************************************/
+/*
+#ifndef WIN_TEST
+#include "tracemac.h"
+#endif */
+
+#endif  /* _DH_TR_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswdhtune.h b/mcu/interface/protocol/as_c2k/1xrtt/pswdhtune.h
new file mode 100644
index 0000000..f4934bb
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswdhtune.h
@@ -0,0 +1,123 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:		pswdhtune.h
+ * Project: 		Diffie Hellman
+ * Original Author:	Dan Doucette
+ * Creation Date:		Oct. 5 1999
+ *
+ * Description:		Defines the specific types and values unique for 
+ * 						each implementation
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: pswdhtune.h $
+ *
+ * 07 06 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * Correct copyright file header
+ * Revision 1.2  2004/03/25 12:07:47  fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1  2003/05/12 15:39:22  fpeng
+ * Initial revision
+ * Revision 1.2  2002/06/06 14:25:34  dstecker
+ * Updated copyright notice
+ * Revision 1.1  2001/07/23 11:37:29  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 11:25:09  mclee
+ * Initial revision
+ * Revision 1.1  2001/01/24 00:10:45Z  mclee
+ * Initial revision
+ * Revision 1.0  1999/12/02 14:27:58  danfeng hong
+ *   Initial revision
+ *
+ ************************************************************************/
+
+#ifndef _DH_TUNE_H
+
+#define _DH_TUNE_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+
+/***********************************************************************
+ *
+ * 	User configurable parameters for the diffie hellman calculations
+ *
+ * ********************************************************************/
+/* if the user enviornment can provide extra heap memory space
+ * (about (DH_MAX_BLOCKS+12)' giantInt: 3k for 512bits, 10k for 1024bits)
+ * for diffie-hellman; DH_MAX_BLOCKS: (DH_KEY_BIT_SIZE+DH_BIT_SIZE-1)/DH_BIT_SIZE
+ */
+/*#define DH_EXTRAMEM 1*/
+#ifdef DH_EXTRAMEM
+#define DH_MAX_MOD_AS_SIZE 1
+/*DH_MAX_BLOCKS*/
+#endif
+
+#define DH_KEY_BIT_SIZE 1024
+
+#endif
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswerr.h b/mcu/interface/protocol/as_c2k/1xrtt/pswerr.h
new file mode 100644
index 0000000..217724c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswerr.h
@@ -0,0 +1,450 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWERRORS_H_
+#define _PSWERRORS_H_
+/*****************************************************************************
+*
+* FILE NAME   : pswerr.h
+*
+* DESCRIPTION :
+*
+*     Contains the error typdefs for error trapping
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+typedef enum
+{
+   /* Task Processing errors */
+   PSW_ERR_UNEXPECTED_EVENT                                    = 0x1000,
+   PSW_ERR_MAILBOX_SHOULD_NOT_BE_EMPTY                         = 0x1001,
+   PSW_ERR_INVALID_MSG_ID                                      = 0x1002,
+   PSW_ERR_INVALID_ETS_TEST_MODE                               = 0x1003,
+   PSW_ERR_STASK_RSA_COMP_FAIL                                 = 0x1004,
+
+   /* Timer errors */
+   PSW_ERR_NO_AVAILABLE_TIMERS                                 = 0x1100,
+   PSW_ERR_NULL_CALLBACK_TIMER_ID                              = 0x1101,
+   PSW_ERR_INVALID_CALLBACK_TIMER_ID                           = 0x1102,
+
+   /* Wbios Errors */
+   PSW_ERR_TO_MANY_CAND_FREQ_PILOTS                            = 0x1200,
+   PSW_ERR_TO_MANY_ACTIVE_SET_PILOTS                           = 0x1201,
+   PSW_ERR_TO_MANY_CANDIDATE_SET_PILOTS                        = 0x1202,
+   PSW_ERR_TO_MANY_NEIGHBOR_SET_PILOTS                         = 0x1203,
+   PSW_ERR_TO_MANY_REMAINING_SET_PILOTS                        = 0x1204,
+   PSW_ERR_INVALID_BAND                                        = 0x1205,
+   PSW_ERR_INVALID_RATE                                        = 0x1206,
+   PSW_ERR_INVALID_SERVICE_OPTION                              = 0x1207,
+   PSW_ERR_INVALID_MESSAGE_PRIORITY                            = 0x1208,
+   PSW_ERR_INVALID_MULTIPLEX_OPTION                            = 0x1209,
+   PSW_ERR_INVALID_STATUS_VALUE_IN_COMMAND_STATUS_MSG          = 0x120A,
+   PSW_ERR_TO_MANY_PILOTS_IN_WBIOS_IDLE_PILOT_SET              = 0x120B,
+   PSW_ERR_TO_MANY_PILOTS_IN_USED_CANDIDATE_FREQ_LIST          = 0x120C,
+   PSW_ERR_TO_MANY_PILOTS_IN_UNUSED_CANDIDATE_FREQ_LIST        = 0x120D,
+   PSW_ERR_TO_MANY_ACTIVE_PILOTS_IN_SET_LIST_UPDATE            = 0x120E,
+   PSW_ERR_TO_MANY_CANDIDATE_PILOTS_IN_SET_LIST_UPDATE         = 0x120F,
+   PSW_ERR_TO_MANY_NEIGHBOR_PILOTS_IN_SET_LIST_UPDATE          = 0x1210,
+   PSW_ERR_ACCESS_MSG_SIZE_MISMATCH                            = 0x1211,
+   PSW_ERR_TO_MANY_PILOTS_IN_TC_ACTIVE_SET                     = 0x1212,
+   PSW_ERR_TO_MANY_CONN_IN_SRV_CONFIG                          = 0x1213,
+   PSW_ERR_INVALID_SRV_CONFIG_TRAFFIC_TYPE                     = 0x1214,
+   PSW_ERR_INVALID_SERV_OPTION                                 = 0x1215,
+   PSW_ERR_INVALID_MUX_OPTION_IN_SRV_CONFIG                    = 0x1216,
+   PSW_ERR_NULL_SRV_CONFIG_POINTER                             = 0x1217,
+   PSW_ERR_INVALID_CANDIDATE_FREQ_NEIGHBOR_SEARCH_MODE         = 0x1218,
+   PSW_ERR_INVALID_IDLE_NEIGHBOR_SEARCH_MODE                   = 0x1219,
+   PSW_ERR_INVALID_NUMBER_IDLE_UPDATE_PILOTS                   = 0x121A,
+   PSW_ERR_INVALID_TX_CONTROL                                  = 0x121B,
+   PSW_ERR_INVALID_RTC_TRAFFIC_TYPE                            = 0x121C,
+   PSW_ERR_INVALID_RATE_FROM_PE                                = 0x121D,
+   PSW_ERR_INVALID_TMSI_LEN                                    = 0x121E,
+   PSW_ERR_TRAFFIC_MSG_SIZE_MISMATCH                           = 0x121F,
+   PSW_ERR_INVALID_HARD_HANDOFF_PARAMETERS                     = 0x1220,
+   PSW_ERR_INVALID_NAM_CHECKSUM                                = 0x1221,
+   PSW_ERR_GETPRL_RECEIVED_UNEXPECTED_MSG_ID                   = 0x1222,
+   PSW_ERR_GETPRL_RECEIVED_INVALID_MSG_ID                      = 0x1223,
+   PSW_ERR_GETPRL_MBOX_SHOULD_NOT_BE_EMPTY                     = 0x1224,
+   PSW_ERR_GETPRL_UNEXPECTED_EVENT                             = 0x1225,
+   PSW_ERR_INVALID_PRL                                         = 0x1226,
+   PSW_ERR_INVALID_CALL_INITIATE_MSG                           = 0x1227,
+   PSW_ERR_INVALID_ACTIVE_NAM_ID                               = 0x1228,
+   PSW_ERR_INVALID_PEND_EVENT_IN_IDLE                          = 0x1229,
+   PSW_ERR_CONT_DTMF_QUEUE_SIZE_EXCEEDED                       = 0x122A,
+   PSW_ERR_PEND_FAILED                                         = 0x122B,
+   PSW_ERR_PWR_COMB_IND_INVALID                                = 0x122C,
+   PSW_ERR_UNEXPECTED_PEND_ENG_REQUEST                         = 0x122D,
+   PSW_ERR_INVALID_ERI_TABLE                                   = 0x122E,
+   PSW_ERR_NO_ERI_TABLE                                        = 0x122F,
+   PSW_ERR_GET_ERI_TABLE_RECEIVED_UNEXPECTED_MSG_ID            = 0x1230,
+   PSW_ERR_GET_ERI_TABLE_RECEIVED_INVALID_MSG_ID               = 0x1231,
+   PSW_ERR_GET_ERI_TABLE_MBOX_SHOULD_NOT_BE_EMPTY              = 0x1232,
+   PSW_ERR_GET_ERI_TABLE_UNEXPECTED_EVENT                      = 0x1233,
+   PSW_ERR_ERI_ENTRY_NOT_FOUND                                 = 0x1234,
+   PSW_MOBILE_ID_INCORRECT_SET_OPERATION                       = 0x1235,
+   PSW_ERR_CORRUPT_SECURE_DATA                                 = 0x1236,
+   PSW_ERR_MOBILE_ID_NOT_SET                                   = 0x1237,
+   PSW_MOBILE_ID_VALUE_OUT_OF_RANGE                            = 0x1238,
+   PSW_ERR_USING_DEFAULT_NAM                                   = 0x1239,
+   PSW_ERR_USING_DEFAULT_MS_CAP_DB                             = 0x123A,
+   PSW_ERR_USING_DEFAULT_MRU                                   = 0x123B,
+   PSW_ERR_UPDATE_IMSI_INVALID_IMSI_S_CHARS                    = 0x123C,
+   PSW_ERR_UPDATE_IMSI_INVALID_IMSI_11_12_CHARS                = 0x123D,
+   PSW_ERR_UPDATE_IMSI_INVALID_MCC_CHARS                       = 0x123E,
+   PSW_ERR_UPDATE_IMSI_NO_VALID_DATA_TO_UPDATE                 = 0x123F,
+   PSW_ERR_UPDATE_IMSI_GENERAL_FAILURE                         = 0x1240,
+   PSW_ERR_UPDATE_MDN_INVALID_CHARS                            = 0x1241,
+   PSW_ERR_UPDATE_MDN_GENERAL_FAILURE                          = 0x1242,
+   PSW_ERR_SET_PARM_INCORRECT_USAGE                            = 0x1243,
+   PSW_ERR_BC_NOM_PWR_EXT_MISMATCH                             = 0x1244,
+   PSW_ATTEMPT_TO_WRITE_INVALID_MOBILE_ID                      = 0x1246,
+   PSW_ERR_SERVICE_OPTION_DISABLED                             = 0x1247,
+
+
+
+
+
+
+
+
+
+
+
+   /* Add new Values on Top of this to use the Big Gap */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+   PSW_ERR_READ_UIM_DATA_FAILURE                               = 0x1290,
+   PSW_ERR_UPDATE_UIM_DATA_FAILURE                             = 0x1291,
+   PSW_ERR_UIM_AUTH_RECEIVED_UNEXPECTED_MSG_ID                 = 0x1292,
+   PSW_ERR_UIM_AUTH_SW_NOT_OK                                  = 0x1293,
+   PSW_ERR_UIM_AUTH_MBOX_SHOULD_NOT_BE_EMPTY                   = 0x1294,
+   PSW_ERR_UIM_AUTH_UNEXPECTED_EVENT                           = 0x1295,
+   PSW_ERR_UIM_AUTH_TIMEOUT                                    = 0x1296,
+   PSW_ERR_UIM_ETS_NAM_UPDATE_IGNORED                          = 0x1297,
+   PSW_ERR_CSS_PRL_HASH_TABLE_SLOT_FULL                        = 0x1298,
+   PSW_ERR_BAND_BLOCK_CHANNEL_OUT_OF_RANGE                     = 0x1299,
+   PSW_ERR_PREF_BAND_NOT_SUPPORTED                             = 0x129A,
+   PSW_ERR_CARRIER_BAND_MISMATCH                               = 0x129B,
+   PSW_ERR_BAND_NOT_SUPPORTED_IN_NAM                           = 0x129C,
+   PSW_ERR_POWER_CLASS_NOT_SUPPORTED                           = 0x129D,
+   PSW_ERR_PARM_OPERATION_NOT_SUPPORTED                        = 0x129E,
+   PSW_ERR_PARM_INVALID_LENGTH                                 = 0x129F,
+   PSW_ERR_PARM_INVALID_PTR                                    = 0x12A0,
+   PSW_ERR_PARM_GENERAL_FAILURE                                = 0x12A1,
+
+   /* User Eng Errors */
+   PSW_ERR_INVALID_NUM_TYPE                                    = 0x1300,
+   PSW_ERR_INVALID_NUM_PLAN                                    = 0x1301,
+   PSW_ERR_INVALID_PRESENTATION_IND                            = 0x1302,
+   PSW_ERR_INVALID_SCREEN_IND                                  = 0x1303,
+   PSW_ERR_INVALID_SIGNAL_TYPE                                 = 0x1304,
+   PSW_ERR_INVALID_ALERT_PITCH                                 = 0x1305,
+   PSW_ERR_INVALID_CP_EVENT                                    = 0x1306,
+   PSW_ERR_INVALID_CP_STATE                                    = 0x1307,
+   PSW_ERR_INVALID_REQUEST_MODE                                = 0x1308,
+   PSW_ERR_INVALID_NUMBER_TYPE                                 = 0x1309,
+   PSW_ERR_INVALID_CALL_INIT                                   = 0x130A,
+
+   /* Protocol Engine Errors */
+   PSW_ERR_PE_SYSTEM_ERROR                                     = 0x1400, /* Protocol stack reported error   */
+   PSW_ERR_PE_INVALID_TRACE                                    = 0x1401, /* Invalid trace Id from engine    */
+   PSW_ERR_PE_INVALID_SPY                                      = 0x1402, /* Invalid spy Id from engine      */
+   PSW_ERR_PE_INVALID_ASSERT                                   = 0x1403, /* Invalid assert from engine ( see IASSERT() isolibtr.h)     */
+
+   /* Startup errors */
+   PSW_ERR_STARTUP_RECEIVED_UNEXPECTED_MSG_ID                  = 0x1500,
+   PSW_ERR_STARTUP_RECEIVED_INVALID_MSG_ID                     = 0x1501,
+   PSW_ERR_STARTUP_MBOX_SHOULD_NOT_BE_EMPTY                    = 0x1502,
+   PSW_ERR_STARTUP_UNEXPECTED_EVENT                            = 0x1503,
+
+   /* SMS errors */
+   PSW_ERR_SMS_MSG_RCVD_TO_LARGE                               = 0x1600,
+   PSW_ERR_INVALID_SAP_CONNECT_VALUE                           = 0x1601,
+   PSW_ERR_INVALID_SAP_DISCONNECT_VALUE                        = 0x1602,
+   PSW_ERR_INVALID_SAP_SUBMIT_VALUE                            = 0x1603,
+   PSW_ERR_INVALID_SAP_CANCEL_VALUE                            = 0x1604,
+   PSW_ERR_INVALID_SAP_USER_ACK_VALUE                          = 0x1605,
+   PSW_ERR_INVALID_SAP_ALREADY_CONNECTED_FOR_CONNNECT          = 0x1606,
+   PSW_ERR_INVALID_SAP_NOT_CONNECTED_FOR_DISCONNNECT           = 0x1607,
+   PSW_ERR_INVALID_SAP_NOT_CONNECTED_FOR_SUBMIT                = 0x1608,
+   PSW_ERR_INVALID_SAP_NOT_CONNECTED_FOR_CANCEL                = 0x1609,
+   PSW_ERR_INVALID_SAP_NOT_CONNECTED_FOR_USER_ACK              = 0x160A,
+   PSW_ERR_INVALID_ENG_ALREADY_CONNECTED_FOR_CONNECT           = 0x160B,
+   PSW_ERR_INVALID_ENG_ALREADY_DISCONNECTED_FOR_DISCONNECT     = 0x160C,
+   PSW_ERR_INVALID_ENG_ALREADY_DISCONNECTED_FOR_SUBMIT         = 0x160D,
+   PSW_ERR_INVALID_ENG_ALREADY_DISCONNECTED_FOR_CANCEL         = 0x160E,
+   PSW_ERR_INVALID_ENG_ALREADY_DISCONNECTED_FOR_USER_ACK       = 0x160F,
+   PSW_ERR_SMS_ENGINE_ERROR                                    = 0x1610,
+   PSW_ERR_SMS_NO_AVAILABLE_TIMERS                             = 0x1611,
+   PSW_ERR_SMS_INVALID_CALLBACK_TIMER_ID                       = 0x1612,
+   PSW_ERR_SMS_DATA_SIZE_TO_LARGE                              = 0x1613,
+   PSW_ERR_SMS_TOO_MANY_CONNECTIONS_ALREADY                    = 0x1614,
+   PSW_ERR_INVALID_NUMBER_OF_ADDRESS_CHARS                     = 0x1615,
+   PSW_ERR_SMS_BCAST_COULD_NOT_BE_CONNECTED                    = 0x1616,
+   PSW_ERR_SMS_BCAST_ALREADY_DISCONNECTED                      = 0x1617,
+   PSW_ERR_INVALID_NUM_SMS_MSGS                                = 0x1618,
+   PSW_ERR_INVALID_FPC_MSG_TYPE                                = 0x1619,
+   PSW_ERR_SMS_REQ_REJECTED_HYBRID                             = 0x161A,
+   PSW_ERR_SMS_UNKNOWN_COULD_NOT_BE_CONNECTED                  = 0x161B,
+   PSW_ERR_SMS_UNKNOWN_ALREADY_DISCONNECTED                    = 0x161C,
+
+   /* SCC errors */
+   PSW_ERR_SCC_BADLY_BEHAVED                                   = 0x1700,
+   PSW_ERR_SCC_QUEUE_FULL                                      = 0x1701,
+   PSW_ERR_SCC_PSC_INVALID_PREF                                = 0x1702,
+   PSW_ERR_SCC_VSC_INVALID_PREF                                = 0x1703,
+   PSW_ERR_SCC_DSC_INVALID_PREF                                = 0x1704,
+   PSW_ERR_SCC_LSC_INVALID_PREF                                = 0x1705,
+   PSW_ERR_SCC_MSC_INVALID_PREF                                = 0x1706,
+   PSW_ERR_SCC_OSC_INVALID_PREF                                = 0x1707,
+   PSW_ERR_SCC_CSC_INVALID_PREF                                = 0x1708,
+   PSW_ERR_SCC_NEG_UNSUPPORTED_SERV_OPT                        = 0x1709,
+   PSW_ERR_SCC_NEG_UNEXPECTED_CP_EVENT                         = 0x170A,
+   PSW_ERR_SCC_PSC_PREV_CONFLICT                               = 0x170B,
+   PSW_ERR_SCC_VSC_PREV_CONFLICT                               = 0x170C,
+   PSW_ERR_SCC_DSC_PREV_CONFLICT                               = 0x170D,
+   PSW_ERR_SCC_LSC_PREV_CONFLICT                               = 0x170E,
+   PSW_ERR_SCC_MSC_PREV_CONFLICT                               = 0x170F,
+   PSW_ERR_SCC_OSC_PREV_CONFLICT                               = 0x1710,
+
+
+   PSW_ERR_LOC_SESS_NOT_FOUND                                               = 0x1750,
+   PSW_ERR_LOC_AFLT_STATE,
+   PSW_ERR_LOC_TCP_RCV_STATE,
+   PSW_ERR_LOC_OUT_PUT_FULL,
+   PSW_ERR_LOC_OUT_PUT_STATE,
+   PSW_ERR_LOC_INVALID_PPM,
+   PSW_ERR_LOC_PPM_ID,
+   PSW_ERR_LOC_EV,
+   PSW_ERR_LOC_SMS_RCV_STATE,
+   PSW_ERR_LOC_FLOW_STATE,
+   PSW_ERR_LOC_RSP_MSG_NUM,
+   PSW_ERR_LOC_PPM_STATE_ID,
+   PSW_ERR_LOC_PRM_STATE_ID,
+
+   PSW_ERR_LOC_SESS_DONE_INST_ID,
+   PSW_ERR_LOC_PPM_START_ID,
+
+   PSW_ERR_LOC_RESTART_ID,
+   PSW_ERR_LOC_ALM_FLAG_ID,
+   PSW_ERR_LOC_EPH_FLAG_ID,
+   PSW_ERR_LOC_ASSIST_DATA_ID,
+   PSW_ERR_LOC_MSB_CALLBACK_ID,
+   /* ================*/
+   /* Protocol Engine */
+   /* ================*/
+
+   /* SRBP */
+   PE_ERR_INVALID_ATTEMPT_TYPE                                 = 0x1800,
+   PE_ERR_INVALID_BA_RATES_SUPPORTED_VALUE                     = 0x1801,
+   PE_ERR_INVALID_CHAN_TYPE_GET_ACC_CORRECTION                 = 0x1802,
+   PE_ERR_INVALID_RADIO_CONFIG                                 = 0x1803,
+   PE_ERR_INVALID_BAND_INIT_EACH_PROBE                         = 0x1804,
+   PE_ERR_INVALID_FRAME_DURATION_INIT_EACH_PROBE               = 0x1805,
+   PE_ERR_INVALID_RATE_INIT_EACH_PROBE                         = 0x1806,
+   PE_ERR_ACCESS_PROBE_ATTEMPTED_WHILE_ONE_ALREADY_IN_PROGRESS = 0x1807,
+   PE_ERR_ACCESS_ATTEMPTED_PILOT_NOT_IN_AHO_LIST               = 0x1808,
+
+   /* RECORD UNFORMAT ERRORS */
+   PSW_ERR_PE_INVALID_RECORD_LENGTH                            = 0x1900,
+   PSW_ERR_PE_RECORD_NOT_SUPPORTED                             = 0x1901,
+
+   /* DBM ERRORS */
+   PSW_ERR_PE_INVALID_CHECKSUM_MS_CAP_DB                       = 0x1A00,
+   PSW_ERR_PE_MS_CAP_DB_UPATE_FAILURE                          = 0X1A01,
+   PSW_ERR_PE_INVALID_CHECKSUM_PSW_MISC_DB                     = 0x1A02,
+
+   /* CSS ERRORS */
+   PE_ERR_CSS_INVALID_SYS_PREF_TYPE                            = 0x1B00,
+   PE_ERR_CSS_INVALID_IND_POWERUP                              = 0x1B01,
+   PE_ERR_CSS_INVALID_IND_POWERUP_NOT_MOST_PREF                = 0x1B02,
+   PE_ERR_CSS_INVALID_IND_POWERUP_NON_SYSTEM_TABLE             = 0x1B03,
+   PE_ERR_CSS_INVALID_IND_POWERUP_NEGATIVE                     = 0x1B04,
+   PE_ERR_CSS_INVALID_IND_CSS_IDLE                             = 0x1B05,
+   PE_ERR_CSS_INVALID_IND_MORE_PREF_SCAN                       = 0x1B06,
+   PE_ERR_CSS_INVALID_EMERGENCY                                = 0x1B07,
+   PE_ERR_CSS_INVALID_IND_SYSTEM_LOST                          = 0x1B08,
+   PE_ERR_CSS_INVALID_IND_REDIRECTION                          = 0x1B09,
+   PE_ERR_CSS_INVALID_IND_REGISTRATION_REJECT                  = 0x1B0A,
+   PE_ERR_CSS_INVALID_IND_OTASP                                = 0x1B0B,
+   PE_ERR_CSS_INVALID_IND_EMERGENCY_REDIRECTION                = 0x1B0C,
+   PE_ERR_CSS_INVALID_IND_EMERGENCY_SYSTEM_LOST                = 0x1B0D,
+   PE_ERR_CSS_INVALID_OTASP_CHAN                               = 0x1B0E,
+   PE_ERR_CSS_INVALID_SYS_TYPE                                 = 0x1B0F,
+   PE_ERR_CSS_INVALID_REDIR_SYS_NOT_FOUND                      = 0x1B10,
+   PE_ERR_CSS_INVALID_BAND_CLASS_REDIR                         = 0x1B11,
+   PE_ERR_CSS_INVALID_SYS_TYPE_REDIR                           = 0x1B12,
+   PE_ERR_CSS_INVALID_CSS_STATE                                = 0x1B13,
+   PE_ERR_CSS_INVALID_BAND_CLASS_CDMA_AVAIL                    = 0x1B14,
+   PE_ERR_CSS_INVALID_BAND_CLASS_ADD_CDMA_AVAIL                = 0x1B15,
+   PE_ERR_CSS_INVALID_CSS_INDICATION                           = 0x1B16,
+   PE_ERR_CSS_INVALID_NOT_CDMA_IDLE_FOR_FORCE_ANALOG           = 0x1B17,
+   PE_ERR_CSS_INVALID_BAND_CLASS_OTASP                         = 0x1B18,
+   PE_ERR_CSS_INVALID_SPRINT_PRL                               = 0x1B19,
+   PE_ERR_CSS_UNSUPPORTED_SSPR_PREV                            = 0x1B1A,
+   PE_ERR_CSS_EXT_PRL_P_REV_MISMATCH                           = 0x1B1B,
+   PE_ERR_CSS_INVALID_SYSTEM_REC_TYPE                          = 0x1B1C,
+   PE_ERR_CSS_INVALID_ACQUSITION_REC_TYPE                      = 0x1B1D,
+
+   PE_ERR_CSS_LAST_ERROR_MARKER                                = 0x1BFF,
+
+
+   /* PS PDCH ERRORS */
+   PS_ERR_PDCH_ECAM_NUM_PILOTS_EXC                             = 0x1C00,
+   PS_ERR_PDCH_INVALID_CONFIG                                  = 0x1C01,
+   PS_ERR_PDCH_LMD_SERVCFG_NN_NUM_LPM_EXC                      = 0x1C02,
+   PS_ERR_PDCH_UHDM_INVALID_INFOREC                            = 0x1C03,
+   PS_ERR_PDCH_UHDM_INVALID_CHIND                              = 0x1C04,
+   PS_ERR_PDCH_UHDM_INVALID_EXTCHIND                           = 0x1C05,
+   PS_ERR_PDCH_UHDM_INVALID_NUM_PILOTS                         = 0x1C06,
+   PS_ERR_PDCH_UHDM_INVALID_ADDPILOTREC_LEN                    = 0x1C07,
+   PS_ERR_PDCH_ERM_INVALID_CHIND                               = 0x1C08,
+   PS_ERR_PDCH_ERM_EOM                                         = 0x1C09,
+   PS_ERR_PDCH_ERM_INVALID_CHCFG                               = 0x1C0A,
+
+   PS_ERR_PDCH_LAST_ERROR_MARKER                               = 0x1CFF,
+
+#ifdef MTK_DEV_C2K_IRAT
+   PSW_ERR_C2K_RSVAS_COMMON                                    = 0x1D00,
+#endif
+
+   /* Last entry place holder */
+   PSW_ERR_NUM_ENTRIES
+} PswErrorCodeT;
+
+/*****************************************************************************
+* $Log: pswerr.h $
+* Revision 1.7  2006/03/03 13:37:16  vsethuraman
+* CR7207 :- PN310 CSS and ERI changes.
+* Revision 1.6  2005/03/18 10:05:21  dstecker
+* Modifications for the 4.05 merge
+* Revision 1.5  2004/09/28 15:24:30  chinh
+* Merged changes from cbp6.0.
+* Revision 1.4  2004/05/04 17:35:50  sulinlow
+* Revision 1.3.1.2  2004/04/30 09:23:17  sulinlow
+* Revision 1.3.1.1  2004/04/23 10:51:38  sulinlow
+* Duplicate revision
+* Revision 1.3  2004/04/23 10:51:38  asharma
+* CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+* Revision 1.2.1.2  2004/04/14 15:21:39  asharma
+* Revision 1.2  2004/03/25 12:07:48  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.3  2004/02/10 12:52:55  bcolford
+* Merged CBP4.0 Release 8.05.0 changes.
+* Revision 1.13  2003/12/17 09:57:12  mclee
+* Add PSW_ERR_INVALID_FPC_MSG_TYPE fault id
+* Revision 1.12  2003/11/06 11:12:38  ameya
+* Added errors that can come up during CSS.
+* Revision 1.11  2003/08/22 11:45:17  mclee
+* Uim Feature Introduction in SW Base
+* Revision 1.10  2003/04/30 09:26:36  mclee
+* add Fault ID PSW_ERR_PEND_ORIG_FAILED
+* Revision 1.9  2003/04/10 15:19:52  mclee
+* Add Cont DTMF Queue Overflow error id.
+* Revision 1.8  2003/04/03 13:41:33  ameya
+* Verified that all the PSW errors listed in the CP software are also listed in the ETS and vice-versa, and also re-numbered the PSW errors in the CP software.
+* Revision 1.7  2003/03/04 09:42:13  mclee
+* Add psw fault ID PSW_ERR_INVALID_PEND_EVENT_IN_IDLE
+* Revision 1.6  2002/07/30 14:16:41  mmalopy
+* - PswErrCodeT enum modified to include an identifier for the
+*   Invalid Active NAM monfault (0x48).
+* Revision 1.5  2002/06/06 14:25:36  dstecker
+* Updated copyright notice
+* Revision 1.4  2002/03/13 16:38:17  byang
+* Added PSW_ERR_PE_INVALID_CHECKSUM_MS_CAP_DB
+* (checksum failure in MS CAP DB on power-up)
+* and
+* PSW_ERR_PE_MS_CAP_DB_UPATE_FAILURE
+* (failure to write MS CAP DB to DBM).
+* Revision 1.3  2002/02/21 16:49:49  byang
+* Added new entry
+* PSW_ERR_PE_INVALID_RECORD_LENGTH
+* to PswErrorCodeT.
+* Revision 1.2  2001/01/29 18:06:05  dstecker
+* new access probe architecture
+* Revision 1.1  2001/01/17 10:57:48  plabarbe
+* Initial revision
+* Revision 1.1  2000/10/24 14:11:44  fpeng
+* Initial revision
+* Revision 1.5  2000/08/23 22:29:33Z  rnookala
+* Added SMS, PRL and SAP error codes
+* Revision 1.4  2000/05/19 02:02:40Z  hhong
+* To support SCC engine.
+* Revision 1.3  2000/03/01 18:19:06Z  rsattari
+* Revision 1.2  1999/12/02 18:41:55Z  cdma
+* Updated comments for CBP3.0
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswnam.h b/mcu/interface/protocol/as_c2k/1xrtt/pswnam.h
new file mode 100644
index 0000000..be63652
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswnam.h
@@ -0,0 +1,114 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1997-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:    pswnam.h
+ *
+ * Purpose:   Definitions and prototypes for IS-95 NAM data parameters
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+  *
+ *  $Log: pswnam.h $
+ *  Revision 1.4  2006/03/07 16:50:13  winston
+ *  CR7319: OTA Verizon features implementation
+ *  Revision 1.3  2006/03/03 13:34:06  vsethuraman
+ *  CR7207 :- PN310 CSS and ERI changes.
+ *  Revision 1.2  2004/03/25 11:46:04  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.3  2004/02/10 15:17:04  bcolford
+ *  Merged CBP4.0 Release 8.05.0 changes. 
+ *  Revision 1.14  2003/11/11 11:30:43  blee
+ *  remove the bit-field OTA_NAM_LOCKED from OTA_Capability_Map
+ *  Revision 1.12  2003/08/22 11:34:10  mclee
+ *  Uim Feature Introduction in SW Base
+ *  Revision 1.11  2003/08/13 15:07:15  mclee
+ *  Add pref mode defines
+ *  Revision 1.10  2002/09/30 14:57:54  mshaver
+ *  Changed the following data structures to be packed:
+ *  ZoneList, SidNidList, IMSIType. Renamed the data
+ *  structure IS95Nam to PswIs95NamT and it now contains the
+ *  only NAM data structure definition.
+ *  Revision 1.9  2002/08/02 17:51:22  bsharma
+ *  Added SmsTlMaxRetry to NAM structure
+ *  Revision 1.8  2002/07/31 18:55:50  hans
+ *  NUM_BANDS_SUPPORTED increased to include band class 4. Band Class 4 (cr726) and support for other band classes (cr474)
+ *  added to Band Class enum.
+ *  Revision 1.7  2002/07/26 14:06:30  ameya
+ *  Added 20 positive sids/nids and 10 negative sids/nids and a stored negative sid/nid parameter to the NAM structure.
+ *  Revision 1.6  2002/07/25 10:07:08  etarolli
+ *  Changed NAM MIP MAX field size for password and NAI size.
+ *  Revision 1.5  2002/06/04 08:07:22  mshaver
+ *  Added VIA Technologies copyright notice.
+ *  Revision 1.4  2002/02/27 20:48:37  mclee
+ *  Modifed the struct IS95Nam to include the new Is801 related Nam params.
+ *  Revision 1.3  2002/02/27 10:52:57  etarolli
+ *  Increased following NAM fields max size: MN_NAI from 10 -> 20 MN_PASSWRD from 8 -> 10. Also fixed spelling of MN_NAI field
+ *  Revision 1.2  2002/02/06 12:00:54  mclee
+ *  Add new A_KeyValid, VP_Enable, and FUTURE_EXPAND_FIELDS to Nam structure.
+ *  Revision 1.1  2001/11/20 06:46:36  mclee
+ *  Initial revision
+ *  Revision 1.1.1.1  2001/10/11 13:24:04  mclee
+ *  Duplicate revision
+ *  Revision 1.1  2001/10/11 13:24:04  mclee
+ *  Initial revision
+ *
+ ****************************************************************************
+ ***************************************************************************/
+
+#ifndef _PSWNAM_H_
+
+#define _PSWNAM_H_ 1
+
+#include "psw_nvram.h"
+
+/*--------------------------------------
+ * Global variables  
+ *--------------------------------------*/
+extern PswIs95NamT Nam;
+
+#endif  /* _NAMDATA_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswpe.h b/mcu/interface/protocol/as_c2k/1xrtt/pswpe.h
new file mode 100644
index 0000000..2bb8ba7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswpe.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _PSWPE_H_
+#define _PSWPE_H_
+/*****************************************************************************
+* 
+* FILE NAME   : pswpe.h
+*
+* DESCRIPTION :
+*
+*     Includes all PE directory header files the PSW unit has dependcies upon
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+  #include "custom.h"
+  #include "systime.h"
+  #include "longcode.h"
+  #include "channel.h"
+  #include "pilots.h"
+  #include "Serv_cfg.h"
+  #include "status.h"
+  #include "layer2.h"
+  #include "srbp_access.h"
+  #include "wbios.h"
+  #include "engine.h"
+  #include "namdata.h"
+  #include "Serv_cfg.h"
+
+/* Remove any type conflicts */
+#undef KAL_TRUE
+#undef KAL_FALSE
+
+/*****************************************************************************
+* $Log: pswpe.h $
+*
+* 07 06 2017 sue.zhong
+* [MOLY00259241] [6293][C2K]Replace with KAL data type
+* Correct copyright file header
+* Revision 1.2  2004/03/25 12:07:48  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.1  2003/05/12 15:39:22  fpeng
+* Initial revision
+* Revision 1.4  2002/10/21 09:42:51  mshaver
+* Changes to support OTTS incorportated into the baseline.  
+* These changes enabled only by #ifdef OTTS.  
+* Normal CP operation is unaffected. 
+* Revision 1.3  2002/06/06 14:25:40  dstecker
+* Updated copyright notice
+* Revision 1.2  2001/01/29 18:06:05  dstecker
+* new access probe architecture
+* Revision 1.1  2001/01/17 10:57:48  plabarbe
+* Initial revision
+* Revision 1.1  2000/10/24 14:11:44  fpeng
+* Initial revision
+* Revision 1.3  2000/03/01 18:19:08Z  rsattari
+* Revision 1.2  1999/12/02 18:41:56Z  cdma
+* Updated comments for CBP3.0
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswrsa.h b/mcu/interface/protocol/as_c2k/1xrtt/pswrsa.h
new file mode 100644
index 0000000..f1496de
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswrsa.h
@@ -0,0 +1,210 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* 
+* FILE NAME   : pswrsa.h
+*
+* DESCRIPTION :
+*
+*  This file contains the implementation of RSA encryption based on TomsFastMath.
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+/* TomsFastMath, a fast ISO C bignum library.
+ * 
+ * This project is meant to fill in where LibTomMath
+ * falls short.  That is speed ;-)
+ *
+ * This project is public domain and free for all purposes.
+ * 
+ * Tom St Denis, tomstdenis@gmail.com
+ */
+#ifndef PSWRSA_H_
+#define PSWRSA_H_
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <limits.h>
+
+#ifndef MIN
+   #define MIN(x,y) (((x)<(y))?(x):(y))
+#endif
+
+#ifndef MAX
+   #define MAX(x,y) (((x)>(y))?(x):(y))
+#endif
+
+/* default configurations for ARM7 besed on test result
+ */
+
+#if (CHAR_BIT & 7)
+   #error CHAR_BIT must be a multiple of eight.
+#endif
+
+typedef unsigned short       fp_digit;         /* 16 bits */
+typedef unsigned int         fp_word;          /* 32 bits */
+
+/* # of digits this is */
+#define DIGIT_BIT  ((int)((CHAR_BIT) * sizeof(fp_digit)))
+
+/* Maximum Integer Precision in bits  
+ * Basically the largest size you will be multiplying should be half [or smaller]
+ * of FP_MAX_SIZE-four_digit
+ * To support max 1024-bits computation need define:
+ */
+#define FP_MAX_SIZE  (2048+(8*DIGIT_BIT))
+
+#define FP_MASK    (fp_digit)(-1)
+#define FP_SIZE    (FP_MAX_SIZE/DIGIT_BIT)
+
+/* signs */
+#define FP_ZPOS     0
+#define FP_NEG      1
+
+/* return codes */
+#define FP_OKAY     0
+#define FP_VAL      1
+#define FP_MEM      2
+
+/* equalities */
+#define FP_LT        -1   /* less than */
+#define FP_EQ         0   /* equal to */
+#define FP_GT         1   /* greater than */
+
+/* replies */
+#define FP_YES        1   /* yes response */
+#define FP_NO         0   /* no response */
+
+/* Enable Optimizing computations based on length of the 'big int'(->used): 
+   Right now, not need them !
+ */
+/*#define TFM_MUL32 
+#define TFM_SQR32 */ 
+
+/* do we want some overflow checks
+   Not required if you make sure your numbers are within range (e.g. by default 
+   a modulus for fp_exptmod() can only be upto 2048 bits long)
+ */
+/* #define TFM_CHECK */
+
+/* this parameter decides the algorithm speed and the peak memory usage 
+   because of the stack size limitation, this value can not be too large */
+#define MAXWINSIZE 1
+/*------------------------ data structure ------------------------- */
+
+/* a FP type */
+typedef struct {
+    fp_digit dp[FP_SIZE];
+    int      used, sign;
+} fp_int;
+
+/*--------------------- functions and macros -----------------------*/
+
+/* initialize [or zero] an fp int */
+#define fp_init(a)  (void)memset((a), 0, sizeof(fp_int))
+#define fp_zero(a)  fp_init(a)
+
+/* zero/even/odd ? */
+#define fp_iszero(a) (((a)->used == 0) ? FP_YES : FP_NO)
+#define fp_iseven(a) (((a)->used >= 0 && (((a)->dp[0] & 1) == 0)) ? FP_YES : FP_NO)
+#define fp_isodd(a)  (((a)->used > 0  && (((a)->dp[0] & 1) == 1)) ? FP_YES : FP_NO)
+
+/* copy from a to b */
+#define fp_copy(a, b)      (void)(((a) != (b)) && memcpy((b), (a), sizeof(fp_int)))
+#define fp_init_copy(a, b) fp_copy(b, a)
+
+/* negate and absolute */
+#define fp_neg(a, b)  { fp_copy(a, b); (b)->sign ^= 1; }
+#define fp_abs(a, b)  { fp_copy(a, b); (b)->sign  = 0; }
+
+/* clamp digits */
+#define fp_clamp(a)   { while ((a)->used && (a)->dp[(a)->used-1] == 0) --((a)->used); (a)->sign = (a)->used ? (a)->sign : FP_ZPOS; }
+
+
+/*-------------------------------public interface-----------------------------*/
+/* error codes [will be expanded in future releases] */
+enum {
+   CRYPT_OK=0,             /* Result OK */
+   CRYPT_INVALID_ARG,      /* Generic invalid argument */
+   CRYPT_MEM,              /* Out of memory */
+
+   CRYPT_ERROR,            /* Generic Error */
+   CRYPT_NOP,              /* Not a failure but no operation was performed */
+   CRYPT_INVALID_KEYSIZE,  /* Invalid key size given */
+   CRYPT_INVALID_ROUNDS,   /* Invalid number of rounds */
+   CRYPT_FAIL_TESTVECTOR,  /* Algorithm failed test vectors */
+   CRYPT_BUFFER_OVERFLOW,  /* Not enough space for output */
+   CRYPT_INVALID_PACKET,   /* Invalid input packet given */
+   CRYPT_INVALID_PRNGSIZE, /* Invalid number of bits for a PRNG */
+   CRYPT_ERROR_READPRNG,   /* Could not read enough from PRNG */
+   CRYPT_INVALID_CIPHER,   /* Invalid cipher specified */
+   CRYPT_INVALID_HASH,     /* Invalid hash specified */
+   CRYPT_INVALID_PRNG,     /* Invalid PRNG specified */
+   CRYPT_PK_TYPE_MISMATCH, /* Not equivalent types of PK keys */
+   CRYPT_PK_NOT_PRIVATE,   /* Requires a private PK key */
+   CRYPT_FILE_NOTFOUND,    /* File Not Found */
+   CRYPT_PK_INVALID_TYPE,  /* Invalid type of PK key */
+   CRYPT_PK_INVALID_SYSTEM,/* Invalid PK system specified */
+   CRYPT_PK_DUP,           /* Duplicate key already in key ring */
+   CRYPT_PK_NOT_FOUND,     /* Key not found in keyring */
+   CRYPT_PK_INVALID_SIZE,  /* Invalid size input for PK parameters */
+   CRYPT_INVALID_PRIME_SIZE/* Invalid size of prime requested */
+};
+
+int rsa_exptmod(unsigned char *in,   int inlen,
+				unsigned char *e,    int elen,
+				unsigned char *n,    int nlen,
+                unsigned char *out,  int *outlen);
+int fp_unsigned_bin_size(fp_int *a);
+void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c);
+void fp_to_unsigned_bin(fp_int *a, unsigned char *b);
+
+#endif /*PSWRSA_H_*/
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/psws_msg_struct.h b/mcu/interface/protocol/as_c2k/1xrtt/psws_msg_struct.h
new file mode 100644
index 0000000..8511289
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/psws_msg_struct.h
@@ -0,0 +1,113 @@
+/*************************************************************
+******************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+/*************************************************************
+*
+*
+*************************************************************/
+
+/*****************************************************************************
+* 
+* FILE NAME   :psws_msg_struct.h 
+*
+* DESCRIPTION :
+*
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+
+#ifndef _PSWS_MSG_STRUCT_H
+#define _PSWS_MSG_STRUCT_H
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "do_slapi.h"
+#include "psws_msgid.h"
+#include "pswsapi.h"
+
+/* PSWS Messages */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSModExpMSReqMsgT msg;
+} psw_s_mod_exp_msreq_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSModExpKReqMsgT msg;
+} psw_s_mod_exp_kreq_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    DHKepCalReqMsgT msg;
+} do_dhkep_cal_req_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSModExpMSReqMsgT msg;
+} psw_s_mod_exp_ms_req_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSHlpDmuKeyEncReqMsgT msg;
+} psw_s_hlp_dmu_keyenc_req_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} psw_s_dbm_data_nam_msg_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    PswSHlpDmuKeyGenReqMsgT msg;
+} psw_s_hlp_dmu_keygen_req_msg_struct;
+
+
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswsapi.h b/mcu/interface/protocol/as_c2k/1xrtt/pswsapi.h
new file mode 100644
index 0000000..6e2b867
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswsapi.h
@@ -0,0 +1,158 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+*
+* FILE NAME   : pswsapi.h
+*
+* DESCRIPTION : API definition for PSW secondary task.
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+#ifndef _PSWSAPI_H_
+#define _PSWSAPI_H_
+
+/*----------------------------------------------------------------------------
+ Global typedefs
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "sysapi.h"
+
+#include "module_msg_range.h"
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define PSW_S_MAILBOX_CMD	EXE_MAILBOX_1_ID
+/*----------------------------------------------------------------------------
+     Message IDs
+----------------------------------------------------------------------------*/
+
+/*-----------------**
+** Message Formats **
+**------------------*/
+typedef struct
+{
+   kal_uint8          parameterP[64];
+   kal_uint8          parameterG[20];
+   kal_uint8          exp[20];
+} PswSModExpMSReqMsgT;
+
+typedef struct
+{
+   kal_uint8		  bsResult[64];
+   kal_uint8		  parameterP[64];
+   kal_uint8		  exp[20];
+   kal_uint8		  numbytes;
+} PswSModExpKReqMsgT;
+
+typedef struct
+{
+   kal_uint16 sid;
+   kal_uint16 nid;
+   kal_uint16 EcIo;
+   kal_uint8 curSys;
+   kal_uint16 curChan;
+   SysCdmaBandT curBand;
+} PswSCssValidateSyncMsgT;
+
+typedef struct {
+   kal_uint16 lenKey;
+   kal_uint8 *pKey;
+   kal_uint8 nPubKeyModLen;
+   kal_uint8 *pPubKeyMod;
+   ExeRspMsgT DmuKeyGenReqRspInfo;
+} PswSHlpDmuKeyGenReqMsgT;
+
+typedef struct {
+   kal_uint8 nTextLen;
+   kal_uint8 *pText;
+   kal_uint8 nPubKeyExpLen;
+   kal_uint8 *pPubKeyExp;
+   kal_uint8 nPubKeyModLen;
+   kal_uint8 *pPubKeyMod;
+   kal_uint8 nEncryptTextLen;
+   kal_uint8 *pEncryptText;
+   ExeRspMsgT DmuKeyEncReqRspInfo;
+} PswSHlpDmuKeyEncReqMsgT;
+#endif
+/*****************************************************************************
+* $Log: pswsapi.h $
+*
+* 06 29 2017 sue.zhong
+* [MOLY00259241] [6293][C2K]Replace with KAL data type
+* ::KAL type - folder inc
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (1/2)
+* Revision 1.3  2005/03/18 10:05:22  dstecker
+* Modifications for the 4.05 merge
+* Revision 1.2  2004/03/25 12:07:49  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.1  2003/05/12 15:39:22  fpeng
+* Initial revision
+* Revision 1.3  2002/06/06 14:25:41  dstecker
+* Updated copyright notice
+* Revision 1.2  2002/05/29 15:13:56  ameya
+* Added structure defn for PswSCssValidateSyncMsgT and msg id PSW_S_CSS_VAL_SYNC_MSG.
+* Revision 1.1  2001/11/20 12:03:17  mclee
+* Initial revision
+* Revision 1.3  2001/04/03 10:10:08  mclee
+* Define PswSFillSSPRListMsgT and added enum PSW_S_FILL_SSPR_REQ_MSG
+* Revision 1.2  2001/01/24 22:53:35Z  mclee
+* Declaired structs and enum for PswSmodExpMSReqMsgT & PswSModExpKReqMsgT used to inputs to Diffie Hellman Calculation.
+* Revision 1.1.2.1  2000/11/22 00:08:02Z  mclee
+* Duplicate revision
+* Revision 1.1  2000/11/22 00:08:02Z  mclee
+* Initial revision
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswsmstune.h b/mcu/interface/protocol/as_c2k/1xrtt/pswsmstune.h
new file mode 100644
index 0000000..880921b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswsmstune.h
@@ -0,0 +1,405 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1997-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _SMS_TUNE_H
+#define _SMS_TUNE_H
+/*************************************************************************
+*
+* File Name:       pswsmstune.h
+*
+* Description:     SMS Tuning File
+*                  Contains tunable parameters for Stack SMS Operation.
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*
+************************************************************************/
+
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_MAX_NUM_ASE
+ *
+ * Description:
+ *   This defines the maximum number of ASEs that can be connected to the
+ *   Transport Layer.
+ *
+ * Restrictions:
+ *  This number must be at most the number of Tele-service Ids
+ *   
+ * Default Value:
+ *   5
+ *   
+ */
+#define SMS_MAX_NUM_ASE 13
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_TL_CONFIRM
+ *
+ * Description:
+ *   This determines how unspecified QoS conditions are handled. If 1, the
+ *   Transport Layer will use confirmed Data Link services whenever the
+ *   QoS requirements are unspecified (e.g. sending an ACK). If 0, the
+ *   non-confirmed service will be used.
+ *
+ * Restrictions:
+ *  This number must be 0 or 1
+ *   
+ * Default Value:
+ *   0
+ *   
+ */
+#define SMS_TL_CONFIRM 1 
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_RL_CONFIRM
+ *
+ * Description:
+ *    Determines if the relay layer will send a request to the lower
+ *    layers with confirmed service.
+ *
+ * Restrictions:
+ *  This number must be 0 or 1
+ *   
+ * Default Value:
+ *   1
+ *   
+ */
+#define SMS_RL_CONFIRM KAL_TRUE 
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_TC_ONLY
+ *
+ * Description:
+ *    Indicates if the SMS Relay Layer should request the outgoing
+ *    message should only be sent on a CDMA traffic channel
+ *
+ * Restrictions:
+ *  This number must be 0 or 1
+ *   
+ * Default Value:
+ *   0 
+ *   
+ */
+/* THIS IS IN SCC_TUNE.H => #define SMS_TC_ONLY KAL_FALSE */
+
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_TL_TIMEOUT
+ *
+ * Description:
+ *   This specifies how much time (in msec's) to wait for a Transport Layer
+ *   acknowledgement from the message center before declaring the transaction
+ *   failed.
+ *
+ * Restrictions:
+ *  This number must be >0 and <=65535
+ *   
+ * Default Value:
+ *   2000      (2 seconds)
+ *   
+ */
+#ifdef VERIZON_EXTENSIONS
+#define SMS_TL_TIMEOUT 5000
+#else
+#ifdef MTK_CBP
+#define SMS_TL_TIMEOUT 18000
+#else
+#define SMS_TL_TIMEOUT 18000
+#endif
+
+
+#endif
+
+#ifdef MTK_CBP
+#define SMS_TL_ACK_VZW_TIMEOUT 18000
+#define SMS_TL_L3ACK_TIMEOUT 6000
+#endif
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_RL_QUEUE_SIZE
+ *
+ * Description:
+ *   This determines how many message buffers of size SMS_RL_BUFFER_SIZE
+ *   that the Relay Layer will allocate for transmitting SMS messages.
+ *
+ * Restrictions:
+ *  This number must be >0 and <= 255
+ *   
+ * Default Value:
+ *   5 
+ *   
+ */
+#define SMS_RL_QUEUE_SIZE 5 
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_RL_BUFFER_SIZE
+ *
+ * Description:
+ *   This determines how large the Relay Layer transmit buffers are in bytes.
+ *
+ * Restrictions:
+ *  This number must be >0 and <= 255
+ *   
+ * Default Value:
+ *   254 
+ *   
+ */
+#define SMS_RL_BUFFER_SIZE 254
+
+/* ---------------------------------------------------------------------
+ * Name: SMS_TL_MAX_TRANS
+ *
+ * Description:
+ *   This determines how many concurrent teleservice messages
+ *   can be awaiting a transport layer acknowledgement 
+ *
+ * Restrictions:
+ *  This number must be >0 and <= 255
+ *   
+ * Default Value:
+ *   5
+ *   
+ */
+#define SMS_TL_MAX_TRANS 5
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: GLOBAL_REPLY_SEQ
+ *
+ * Description:
+ *      This macro sets the initial value for the GlobalReplySeq
+ *      value used for all transport layer messages within the SMS engine.
+ *
+ * Restrictions:
+ *      This number must be within 0 <= GLOBAL_REPLY_SEQ <= 65535
+ *
+ * Default Value:
+ *  0
+ *
+ */
+#define GLOBAL_REPLY_SEQ 0
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_MAX_ADDRESS_CHARS
+ *
+ * Description:
+ *    Limit on the number of bytes used for the chari fields of
+ *    the SMS_ADDR structure
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    32 (same as max for MMI)
+ *
+ */
+#define SMS_MAX_ADDRESS_CHARS 32
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_MAX_SUBADDRESS_CHARS
+ *
+ * Description:
+ *    Limit on the number of bytes used for the chari fields of
+ *    the SMS_SUBADDR structure
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    30
+ *
+ */
+#define SMS_MAX_SUBADDRESS_CHARS 30
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_MAX_USERDATA_LENGTH
+ *
+ * Description:
+ *    Limit on the number of bytes of data used for the chari
+ *    fields in the SMS_USERDATA structure.  This field must 
+ *    be small enough to make the SMS message fit within one
+ *    data burst message.  There is no segmentation of user 
+ *    messages!
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    200
+ *
+ */
+#define SMS_MAX_USERDATA_LENGTH 220
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_MAX_NUM_DATA_MSGS
+ *
+ * Description:
+ *    Limit on the number of data messages contained within the
+ *    SMS_USERDATA structure.  This structure can hold multiple
+ *    messages each with a different encoding scheme
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    2
+ *
+ */
+#define SMS_MAX_NUM_DATA_MSGS 2
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_TL_MAX_MSG_LENGTH
+ *
+ * Description:
+ *    Limits the size of a fully constructed SMS Teleservice Message.
+ *    This limit is used in the SMS_TL_MSG structure
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    255 
+ *
+ */
+#define SMS_TL_MAX_MSG_LENGTH 255
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: SMS_TL_MAX_RETRY
+ *
+ * Description:
+ *    Limit to the number of times the Transport Layer will attemt
+ *    to resend a message to the message center
+ *
+ * Restrictions:
+ *      0 < x < 255
+ *
+ * Default Value:
+ *    3 
+ *
+ */
+#ifdef VERIZON_EXTENSIONS
+#define SMS_TL_MAX_RETRY_TEMP_ERROR    3
+#define SMS_TL_MAX_RETRY_PERM_ERROR    3
+#define SMS_TL_MAX_RETRY_TIMEOUT_ERROR 3
+#else
+
+#ifdef SPRINT_EXTENSIONS
+#define SMS_TL_MAX_RETRY_TEMP_ERROR    0
+#define SMS_TL_MAX_RETRY_PERM_ERROR    0
+#define SMS_TL_MAX_RETRY_TIMEOUT_ERROR 1
+
+#else
+#define SMS_TL_MAX_RETRY_TEMP_ERROR    0
+#define SMS_TL_MAX_RETRY_PERM_ERROR    0
+#ifdef MTK_CBP
+#define SMS_TL_MAX_RETRY_TIMEOUT_ERROR 4
+#else
+#define SMS_TL_MAX_RETRY_TIMEOUT_ERROR 0
+#endif
+#endif
+#endif
+
+/* ---------------------------------------------------------------------
+ *
+ * Name: PSW_MAX_NUM_SERVICE_CATEGORIES
+ *
+ * Description:
+ *    Limit to the number of categories for the service category program
+ *    results
+ *
+ * Restrictions:
+ *      0 < x < 85
+ *
+ * Default Value:
+ *    30 
+ *
+ */
+
+#define SMS_MAX_NUM_SERVICE_CATEGORIES 10
+#define SMS_MAX_CHAR_CATEGORY 20
+#ifdef MTK_CBP
+#define SMS_TL_RESEND_TIMEOUT 5000
+#define SMS_TL_WAIT_RSP_TIMEOUT 165000
+#else
+#define SMS_TL_RESEND_TIMEOUT 10000
+#endif
+
+
+#ifdef MTK_CBP
+#define SMS_TL_MOREL_TIMEOUT 4000
+#define SMS_TL_MMS_TIMEOUT 6000
+#endif
+
+/*****************************************************************************
+* $Log: pswsmstune.h $
+* Revision 1.2  2004/03/25 11:46:04  fpeng
+* Updated from 6.0 CP 2.5.0
+* Revision 1.2  2003/08/27 15:04:56  bcolford
+* Updated for merge
+* Revision 1.7  2003/03/31 13:30:02  bsharma
+* Changed SMS_TL_TIMEOUT to 5 seconds to allow time for origination.
+* Revision 1.6  2003/02/28 16:43:00  dstecker
+* Upgrade SMS to make it 637B compliant
+* Revision 1.5  2002/06/04 08:07:22  mshaver
+* Added VIA Technologies copyright notice.
+* Revision 1.4  2001/10/29 08:48:22  mclee
+* Changed # define SMS_RL_CONFIRM 1 to KAL_TRUE
+* Revision 1.3  2001/09/24 15:00:05  kmar
+* Update SMS to latest in CBP3.
+* Increases SMS_MAX_NUM_ASE to 5 and SMS_MAX_ADDRESS_CHARS to 32.
+* Revision 1.2  2000/12/19 11:57:32  plabarbe
+* Updated to come a bit closer to LSI conventions.
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /* _SMS_TUNE_H */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/pswvalapi.h b/mcu/interface/protocol/as_c2k/1xrtt/pswvalapi.h
new file mode 100644
index 0000000..f72d626
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/pswvalapi.h
@@ -0,0 +1,1891 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+#ifndef PSWVALAPI_H
+#define PSWVALAPI_H
+
+#include "pswcustom.h"
+#include "sysdefs.h"
+#include "sysapi.h"
+#include "pswapi.h"
+#include "pswsmstune.h"
+#include "hlpapi.h"
+//#include "valfsiapi.h"
+
+
+
+ /*-----------------------------------------------------------------
+ * HLWHandler
+ *----------------------------------------------------------------*/
+
+/* VAL_TCPB_CONN_STATUS_MSG */
+typedef enum
+{
+  VAL_TCPB_CONNECT_SUCCESS,         /* connection success       */
+  VAL_TCPB_CONNECT_FAIL_TCP,        /* connection fails on TCP  */
+  VAL_TCPB_CONNECT_FAIL_PPP,        /* connection fails on PPP  */
+  VAL_TCPB_CONNECT_FAIL_RLP,        /* connection fails on RLP  */
+  VAL_TCPB_CONNECT_FAIL_UART,       /* not use                  */
+  VAL_TCPB_DISCONNECT_NORMAL,       /* disconnect from BS       */
+  VAL_TCPB_DISCONNECT_MS,           /* disconnect from MS       */
+  VAL_TCPB_DISCONNECT_FADE,         /* disconnect due to fading */
+  VAL_TCPB_CONNECT_FAIL_TRAFFIC,    /* connection fails on traffic */
+  VAL_TCPB_CONNECT_FAIL_NOSVC,      /* connection fails on no src  */
+  VAL_TCPB_CONNECT_DORMANT,         /* connection dormant       */
+  VAL_TCPB_CONNECT_RECONNECT,       /* reconnect after dormant  */
+  VAL_TCPB_NUM_CONNECT_STATUS
+} TcpbStatusT;
+
+typedef enum
+{
+  VAL_IE_CLOSEPENDINGWAIT  =  6,        /* TCP close by peers, wait for user */
+  VAL_IE_CLOSEPENDING      =  5,        /* TCP graceful close in progress  */
+  VAL_IE_RECVMOREDATA      =  4,        /* more UDP or raw IP data         */
+  VAL_IE_NODATA            =  3,        /* no data available for receive   */
+  VAL_IE_CONNECTPENDING    =  2,        /* TCP connect attempt in progress */
+  VAL_IE_LISTENPENDING     =  1,        /* listening for remote connect    */
+  VAL_IE_SUCCESS           =  0,        /* request successful              */
+  VAL_IE_INVALIDRQST       = -1,        /* invalid or unknown request      */
+  VAL_IE_INVALIDSAP        = -2,        /* invalid service access point    */
+  VAL_IE_INVALIDPORT       = -4,        /* invalid listen or connect port  */
+  VAL_IE_INVALIDADDR       = -5,        /* invalid connect host address    */
+  VAL_IE_NOMOREMBUFS       = -6,        /* no mbufs available              */
+  VAL_IE_NOMORETCBS        = -7,        /* no tcbs available               */
+  VAL_IE_NOLOCALADDR       = -8,        /* local host address not set      */
+  VAL_IE_INVALIDSIZE       = -9,        /* invalid send or receive size    */
+  VAL_IE_INVALIDDATA       = -10,       /* invalid request field           */
+  VAL_IE_INVALIDOPT        = -11,       /* option incorrectly specified    */
+  VAL_IE_INVALIDFLAGS      = -12,       /* invalid send/sento flags        */
+  VAL_IE_INVALIDSTATE      = -13,       /* invalid TCP state               */
+  VAL_TCP_TIME_OUT         = -14,       /* TCP connecting time out         */
+  VAL_TCP_RESET            = -15,       /* TCP reset by remote             */
+  VAL_TCP_ABORT            = -16,       /* TCP reset by local              */
+  VAL_TCP_DISCNT_NORMAL    = -17        /* TCP Disconnect normal           */
+} ValSocketStatusT;
+
+typedef PACKED_PREFIX struct
+{
+  TcpbStatusT  Status;
+} PACKED_POSTFIX  ValTcpbConnStatusMsgT;
+
+/* VAL_TCPB_DATA_RECV_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8   Sap;
+#if defined(MTK_PLT_ON_PC) && defined(MTK_PLT_ON_PC_UT)
+  kal_uint8   Data[255];
+#endif
+  kal_uint8*  DataP;
+  kal_uint16  Size;
+} PACKED_POSTFIX  ValTcpbDataRecvMsgT;
+
+/* VAL_TCPB_DATA_SEND_RSP_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8            Sap;
+  ValSocketStatusT status;
+} PACKED_POSTFIX  ValTcpbDataSendRspMsgT;
+
+/* VAL_UPB_CONN_STATUS_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8  Status;
+} PACKED_POSTFIX  ValUpbConnStatusMsgT;
+
+/* VAL_TCPB_SEND_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Sap;          /* Socket ID */
+  kal_uint8 SetId;        /* Canned Data set ID. Data contents reside in:
+                         SetId   Data resides in
+                           0    : DataP pointer below. Reserved for LBS only.
+                                  If DataP needed for other features use
+                                  new SetId.
+                           1    : HTTP_GetRequest1
+                           2    : HTTP_GetRequest2
+                          else  : HTTP_NULL
+                       */
+  kal_uint16 Size;        /* Size of contents in DataP pointer */
+  kal_uint8* DataP;       /* Pointer to data */
+} PACKED_POSTFIX  ValTcpbSendDataMsgT;
+
+/* VAL_UDPB_SEND_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Sap;          /* Socket ID */
+  kal_uint32   IpAddress;    /* 32-bit IP address. */
+  kal_uint16   Port;         /* UDP port number.   */
+} PACKED_POSTFIX  ValUdpbSendDataMsgT;
+
+/* VAL_UPB_SENT_DATA_RSP_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8            Sap;
+  ValSocketStatusT status;
+} PACKED_POSTFIX  ValUdpbSentDataRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint32   IpAddress;    /* 32-bit IP address. */
+  kal_uint16   PortNumber;   /* UDP port number.   */
+} PACKED_POSTFIX  ValAppAddrT;
+
+/* VAL_UPB_RECV_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8*       Data;  /* Point to data buffer.        */
+  kal_uint16       Size;  /* Size of datagram received.   */
+  ValAppAddrT  FromAddress;
+  kal_uint8        Sap;
+} PACKED_POSTFIX  ValUpbRecvDataMsgT;
+
+/*-----------------------------------------------------------------
+ * AIWHandler
+ *----------------------------------------------------------------*/
+
+/* VAL_NWK_RPT_DATA_SVC_STATUS_WORD_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 statusStr[15]; /* ??? buffer overflow in aiweng:mmiAiResult() */
+} PACKED_POSTFIX  ValNwkRptDataSvcStatusWordMsgT;
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_PSW_DATA_ASYNC,
+  VAL_PSW_DATA_FAX,
+  VAL_PSW_DATA_QNC,
+  VAL_PSW_DATA_PKT_MODEM,
+  VAL_PSW_DATA_PKT_BROWSER
+} ValPswDataTypeT;
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_PSW_DATA_CALL_ORIG,
+  VAL_PSW_DATA_CALL_INCOMING,
+  VAL_PSW_DATA_CALL_ALERTING,
+  VAL_PSW_DATA_CALL_CONNECTED,
+  VAL_PSW_DATA_CALL_DORMANCY,
+  VAL_PSW_DATA_CALL_RELEASED,
+  VAL_PSW_DATA_CALL_WFR_RELEASE /*Wait for application to release the browser call because of the OOSA timer expired */
+} ValPswDataCallEvtT;
+
+//don't modify following Struct, brew has referred to it
+typedef PACKED_PREFIX struct
+{
+  ValPswDataTypeT DataType;
+  ValPswDataCallEvtT Event;
+} PACKED_POSTFIX  ValPswRptDataCallEvtMsgT;
+
+/*-----------------------------------------------------------------
+ * OTASPHandler
+ *----------------------------------------------------------------*/
+
+ /* VAL_IOTA_683_RSP_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 *IS683Rsp;
+    kal_uint16 Length;
+ } PACKED_POSTFIX  ValIOTARspMsgT;
+
+ /* VAL_IOTA_PRL_RSP_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 *PRLRsp;
+    kal_uint16 Length;
+ } PACKED_POSTFIX  ValIOTAPRLRspMsgT;
+
+ /* VAL_OTASP_IND_MSG */
+ typedef enum
+ {
+    VAL_OTA_PRLDownload,
+    VAL_OTASP_Connect,
+    VAL_OTA_Disconnect,
+    VAL_OTAPA_SessionStart,
+    VAL_OTAPA_SessionStop,
+    VAL_OTAPA_VerifyOK,
+    VAL_OTA_SPASMUnlock,
+    VAL_OTA_AkeyEx,
+    VAL_OTA_SPLUnlock,
+    VAL_OTA_SSDUpd,
+    VAL_OTA_NAMDownload,
+    VAL_OTA_MDNDownload,
+    VAL_OTA_IMSIDownload,
+    VAL_OTA_PRLDownloading,
+    VAL_OTA_DataMaskCommitToNVRAM,
+    VAL_OTA_DataToNVRAM,
+    VAL_OTA_CommitOK,
+    VAL_OTA_ExcessSPCFailure,
+    VAL_OTA_AnalogCDMADownload,
+    VAL_OTA_PRLDownloadOK,
+    VAL_OTA_PRLDownloadFail,
+    VAL_OTA_ProgrammingFail,
+    VAL_OTA_Premature_Terminate,
+    VAL_OTA_VendorLock_Reset,
+    VAL_OTA_Null
+} ValOtaStatusIndT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValOtaStatusIndT  status;
+ } PACKED_POSTFIX  ValOtaspIndMsgT;
+
+ /* VAL_OTASP_TX_RSP_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool  Success;
+ } PACKED_POSTFIX  ValOtaspTxRspMsgT;
+
+typedef struct
+{
+    kal_uint16 wSysID;             /* System Identification */
+    kal_uint16 wNetID;             /* Network Identification */
+    kal_uint16 wBaseID;            /* Base Station Identification */
+    kal_uint16 wBaseClass;         /* Base Station Class */
+    kal_uint16 wBestPN;            /* Best Pilot */
+    kal_uint16 wPacketZoneID;      /* Packet Data Service Zone Identifier */
+    kal_uint16 wMobileCountryCode; /* Mobile country code */
+} ValLbsSectorInfo;
+
+typedef struct
+{
+    ValLbsSectorInfo SectorInfo;
+} ValLocGetSectorInfoRspMsgT;
+
+/* MSG_ID_VAL_LOC_ERROR_MSG */
+typedef enum
+{
+    TCP_NOT_SUPP,
+    MS_ORIG_NOT_SUPP,
+    NUM_MULTIPLE_SESS_EXCEEDED,
+    MS_ORIG_SESS_ALREADY_ACTIVE,
+    NETWORK_CANCEL_RCVD,
+    DSP_ERROR,
+    PDE_ERROR
+} ValLocErrorTypes;
+
+typedef struct
+{
+    ValLocErrorTypes Error;
+} ValLocErrorMsgT;
+
+/* MSG_ID_VAL_LOC_PILOT_PHASE_MEAS_MSG */
+/* Refer to PswPosAfltMeasurementMsgT in pswapi.h */
+
+/* MSG_ID_VAL_LOC_PSEUDO_RANGE_MSG */
+
+#define MAX_NUM_PSEUDO_RANGE_PARAM   16
+
+typedef struct
+{
+   kal_uint8 SvPrnNum;
+   kal_uint8 SvCno;
+   kal_uint16 SvCodePhWh;
+   kal_uint16 SvCodePhFr;
+} PseudoRangeParamT;
+
+typedef struct
+{
+   kal_uint8 NumPsRanges;
+   PseudoRangeParamT psRanges[MAX_NUM_PSEUDO_RANGE_PARAM];
+} ValLocPseudoRangeMeasMsgT;
+
+ /*-----------------------------------------------------------------
+ * PSWHandler
+ *----------------------------------------------------------------*/
+
+ /* common ds to 3 VAL_NWK_RPT_xxx messages */
+
+#ifdef MTK_CBP
+#define VAL_MAX_DISPLAY_SIZE 64
+#else
+#define VAL_MAX_DISPLAY_SIZE 62
+#endif
+
+typedef enum
+{
+   VAL_NP_UNKNOWN         = 0,
+   VAL_NP_ISDN_TELEPHONY,
+   VAL_NP_DATA            = 3,
+   VAL_NP_TELEX,
+   VAL_NP_PRIVATE         = 9,
+   VAL_NUMBER_PLAN_INVALID
+} ValNumberPlanT;
+
+typedef enum
+{
+   VAL_NT_UNKNOWN = 0,
+   VAL_NT_INTERNATIONAL,
+   VAL_NT_NATIONAL,
+   VAL_NT_NETWORK_SPECIFIC,
+   VAL_NT_SUBSCRIBER,
+   VAL_NT_RSVD,
+   VAL_NT_ABBREVIATED,
+   VAL_NUMBER_TYPE_INVALID
+} ValNumberTypeT;
+
+#define VAL_MAX_CALLED_PARTY_NUMBER_SIZE 32
+typedef PACKED_PREFIX struct
+{
+   ValNumberTypeT Type;
+   ValNumberPlanT Plan;
+   kal_uint8       Number[VAL_MAX_CALLED_PARTY_NUMBER_SIZE+1];
+} PACKED_POSTFIX  ValCalledPartyNumberT;
+
+typedef enum
+{
+   VAL_PI_ALLOWED = 0,
+   VAL_PI_RESTRICTED,
+   VAL_PI_NUMBER_NA,
+   VAL_PI_RSVD,
+   VAL_PRESENTATION_INDICATOR_INVALID
+} ValPresentationIndicatorT;
+
+typedef enum
+{
+   VAL_SI_USER_PROVIDED_NOT_SCREENED = 0,
+   VAL_SI_USER_PROVIDED_VERIFIED_PASSED,
+   VAL_SI_USER_PROVIDED_VERIFIED_FAILED,
+   VAL_SI_NETWORK_PROVIDED,
+   VAL_SCREENING_INDICATOR_INVALID
+} ValScreeningIndicatorT;
+
+#define VAL_MAX_CALLING_PARTY_NUMBER_SIZE 32
+typedef PACKED_PREFIX struct
+{
+   ValNumberTypeT Type;
+   ValNumberPlanT Plan;
+   ValPresentationIndicatorT Pi;
+   ValScreeningIndicatorT Si;
+   kal_uint8 Number[VAL_MAX_CALLING_PARTY_NUMBER_SIZE+1];
+} PACKED_POSTFIX  ValCallingPartyNumberT;
+
+typedef enum
+{
+   VAL_ST_TONE_SIGNAL = 0,
+   VAL_ST_ISDN_ALERTING,
+   VAL_ST_IS54B_ALERTING,
+   VAL_ST_RCVD,
+   VAL_SIGNAL_TYPE_INVALID
+} ValSignalTypeT;
+
+typedef enum
+{
+   VAL_PITCH_MEDIUM = 0,
+   VAL_PITCH_HIGH,
+   VAL_PITCH_LOW,
+   VAL_PITCH_RSVD,
+   VAL_ALERT_PITCH_INVALID
+} ValAlertPitchT;
+
+typedef PACKED_PREFIX struct
+{
+   ValSignalTypeT Type;
+   ValAlertPitchT Pitch;
+   kal_uint8 Signal;
+} PACKED_POSTFIX  ValSignalT;
+
+typedef enum
+{
+   VAL_SUBADDRESSTYPE_NSAP = 0,
+   VAL_SUBADDRESSTYPE_USER = 2,
+   VAL_SUBADDRESSTYPE_RESERVED
+} ValSubaddressTypeT;
+
+typedef enum
+{
+   VAL_INDICATOR_EVEN = 0,
+   VAL_INDICATOR_ODD
+} ValOddEvenIndicatorT;
+
+#define VAL_MAX_SUBADDRESS_NUMBER_SIZE VAL_MAX_CALLED_PARTY_NUMBER_SIZE /* ??? */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8                ExtensionBit;
+    ValSubaddressTypeT   SubaddressType;
+    ValOddEvenIndicatorT OddEvenIndicator;
+    kal_uint8                Number[VAL_MAX_SUBADDRESS_NUMBER_SIZE + 1];
+ } PACKED_POSTFIX  ValSubaddressT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 UpLink;
+    kal_uint8 DownLink;
+ } PACKED_POSTFIX  ValAudioControlT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool                    RcvdDisplay;
+    kal_uint8                   Display[VAL_MAX_DISPLAY_SIZE + 1];
+
+    kal_bool                    RcvdCalledPartyNumber;
+    ValCalledPartyNumberT   CalledPartyNumber;
+
+    kal_bool                    RcvdCallingPartyNumber;
+    ValCallingPartyNumberT  CallingPartyNumber;
+
+    kal_bool                    RcvdConnectedNumber;
+    ValCallingPartyNumberT  ConnectedNumber;   /* Same format as CallingPartyNumber */
+
+    kal_bool              RcvdSignal;
+    ValSignalT        Signal;
+
+    kal_bool              RcvdMessageWaiting;
+    kal_uint8             MsgCount;
+
+    kal_bool              RcvdClirCause; /* ??? */
+    kal_uint8             ClirCause;
+
+    kal_bool              RcvdRelease;
+
+    kal_bool              RcvdAudioControl;
+    ValAudioControlT  AudioControl;
+
+    kal_bool              RcvdCalledPartySubaddress;       /* added since related to Numbers */
+    ValSubaddressT    CalledPartySubaddress;
+
+    kal_bool              RcvdCallingPartySubaddress;
+    ValSubaddressT    CallingPartySubaddress;
+
+    kal_bool              RcvdConnectedSubaddress;
+    ValSubaddressT    ConnectedSubaddress;
+
+    kal_bool              RcvdCallWaitingIndicator;
+    kal_uint8             CallWaitingIndicator;
+    kal_bool              MoreData;
+
+    PswServiceOptionT SO;
+    } PACKED_POSTFIX  ValNwkRptBasicInfoT;
+
+ /* VAL_ACCESS_MAX_CAPSULE_SIZE_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 Size;
+ } PACKED_POSTFIX  ValAccessMaxCapsuleSizeMsgT;
+
+ /* VAL_BS_CO_ORD_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint16   baseId;
+    kal_int32    baseLat;
+    kal_int32    baseLong;
+ } PACKED_POSTFIX  ValBSCoOrdMsgT;
+
+ /* VAL_NAM_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    NamNumber     namNumber;
+    PswIs95NamT   namFields;
+ } PACKED_POSTFIX  ValNamMsgT;
+
+#ifdef KDDI_EXTENSIONS
+ /* VAL_PSW_ANTENNA_BARS_RPT_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8    antennabars;
+ } PACKED_POSTFIX  ValPswAntennaBarsRptMsgT;
+#endif
+
+ /* VAL_NWK_RPT_ALERT_MORE_INFO_REC_MSG */
+ /* VAL_NWK_RPT_FLASH_MORE_INFO_REC_MSG */
+ /* VAL_NWK_RPT_FEAT_NOTIF_MORE_INFO_REC_MSG */
+ typedef enum
+ {
+    VAL_REDIRECTION_UNKNOWN = 0,
+    VAL_REDIRECTION_BUSY,
+    VAL_REDIRECTION_NO_REPLY,
+    VAL_REDIRECTION_DTE_OUT_OF_ORDER = 0x9,
+    VAL_REDIRECTION_FORWARDING_BY_DTE,
+    VAL_REDIRECTION_UNCONDITIONAL_OR_SYSTEMATIC = 0xF
+ } ValRedirectionReasonT;
+
+#define VAL_MAX_REDIRECTING_NUMBER_SIZE 32
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 ExtensionBit1;
+    ValNumberTypeT Type;
+    ValNumberPlanT Plan;
+
+    kal_uint8 ExtensionBit2;
+    ValPresentationIndicatorT  Pi;
+    ValScreeningIndicatorT     Si;
+
+    kal_uint8 ExtensionBit3;
+    ValRedirectionReasonT   RedirectionReason;
+    kal_uint8 Number[VAL_MAX_REDIRECTING_NUMBER_SIZE+1];
+ } PACKED_POSTFIX  ValRedirectingNumberT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint16   PulseFrequency;
+    kal_uint8 PulseOnTime;
+    kal_uint8 PulseOffTime;
+    kal_uint8 PulseCount;
+ } PACKED_POSTFIX  ValMeterPulsesT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 Amplitude;
+    kal_uint16   Freq1;
+    kal_uint16   Freq2;
+    kal_uint8 OnTime;
+    kal_uint8 OffTime;
+    kal_uint8 Repeat;
+    kal_uint8 Delay;
+ } PACKED_POSTFIX  ValCadenceGroup;
+
+#define VAL_MAX_CADENCE_GROUPS_REC 6
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8       CadenceCount;
+    kal_uint8       NumGroups;
+    ValCadenceGroup   CadenceGroup[VAL_MAX_CADENCE_GROUPS_REC];
+ } PACKED_POSTFIX  ValParametricAlertingT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 PolarityIncluded;
+    kal_uint8 ToggleMode;
+    kal_uint8 ReversePolarity;
+    kal_uint8 PowerDenialTime;
+ } PACKED_POSTFIX  ValLineControlT;
+
+ typedef enum
+ {
+    VAL_DISPLAYTAG_BLANK = 0x80,
+    VAL_DISPLAYTAG_SKIP,
+    VAL_DISPLAYTAG_CONTINUATION,
+    VAL_DISPLAYTAG_CALLED_ADDRESS,
+    VAL_DISPLAYTAG_CAUSE,
+    VAL_DISPLAYTAG_PROGRESS_INDICATOR,
+    VAL_DISPLAYTAG_NOTIFICATION_INDICATOR,
+    VAL_DISPLAYTAG_PROMPT,
+    VAL_DISPLAYTAG_ACCUMULATED_DIGITS,
+    VAL_DISPLAYTAG_STATUS,
+    VAL_DISPLAYTAG_INBAND,
+    VAL_DISPLAYTAG_CALLING_ADDRESS,
+    VAL_DISPLAYTAG_REASON,
+    VAL_DISPLAYTAG_CALLING_PARTY_NAME,
+    VAL_DISPLAYTAG_CALLED_PARTY_NAME,
+    VAL_DISPLAYTAG_ORIGINAL_CALLED_NAME,
+    VAL_DISPLAYTAG_REDIRECTING_NAME,
+    VAL_DISPLAYTAG_CONNECTED_NAME,
+    VAL_DISPLAYTAG_ORIGINATING_RESTRICTIONS,
+    VAL_DISPLAYTAG_DATE_TIME_OF_DAY,
+    VAL_DISPLAYTAG_CALL_APPEARANCE_ID,
+    VAL_DISPLAYTAG_FEATURE_ADDRESS,
+    VAL_DISPLAYTAG_REDIRECTION_NAME,
+    VAL_DISPLAYTAG_REDIRECTION_NUMBER,
+    VAL_DISPLAYTAG_REDIRECTING_NUMBER,
+    VAL_DISPLAYTAG_ORIGINAL_CALLED_NUMBER,
+    VAL_DISPLAYTAG_CONNECTED_NUMBER,
+    VAL_DISPLAYTAG_TEXT = 0x9E
+ } ValDisplayTagT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValDisplayTagT DisplayTag;
+    kal_uint8       DisplayLen;
+    kal_uint8       Chari[VAL_MAX_DISPLAY_SIZE + 1];
+ } PACKED_POSTFIX  ValExtendedDisplayRec;
+
+#define VAL_NUM_EXTENDED_DISPLAY_REC CP_MAX_EXTENDED_DISPLAY_REC
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+ #else
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8                   ExtDisplayInd;
+    kal_uint8                   DisplayType;
+    kal_uint8                   NumDispRec;
+    ValExtendedDisplayRec   ExtendedDisplayRec[VAL_NUM_EXTENDED_DISPLAY_REC];
+ } PACKED_POSTFIX  ValExtendedDisplayT;
+ #endif
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool  RcvdRedirectingNumber;
+    ValRedirectingNumberT   RedirectingNumber;
+    kal_bool  RcvdRedirectingSubaddress;
+    ValSubaddressT       RedirectingSubaddress;
+    kal_bool  RcvdMeterPulses;
+    ValMeterPulsesT         MeterPulses;
+    kal_bool  RcvdParametricAlerting;
+    ValParametricAlertingT  ParametricAlerting;
+    kal_bool  RcvdLineControl;
+    ValLineControlT         LineControl;
+    kal_bool  RcvdExtendedDisplay;
+    ValExtendedDisplayT     ExtendedDisplay;
+    PswServiceOptionT SO;
+ } PACKED_POSTFIX  ValNwkRptAddInfoT;
+
+ typedef PACKED_PREFIX struct
+ {
+  kal_bool isBasicInfoValid; /* to indicate BasicInfo valid or not */
+  ValNwkRptBasicInfoT NwkRptBasicInfo;
+
+  kal_bool isAddInfoValid;   /* to indicate AddInfo valid or not */
+  ValNwkRptAddInfoT   NwkRptAddInfo;
+ } PACKED_POSTFIX  ValNwkRptInfoMsgT;
+
+ /* VAL_NWK_RPT_ALERT_MSG */
+ typedef ValNwkRptInfoMsgT ValNwkRptAlertMsgT;
+
+ /* VAL_NWK_RPT_FEATURE_NOTIFICATION_MSG */
+ typedef ValNwkRptInfoMsgT ValNwkRptFeatureNotificationMsgT;
+
+ /* VAL_NWK_RPT_FLASH_MSG */
+ typedef ValNwkRptInfoMsgT ValNwkRptFlashMsgT;
+
+
+ /* VAL_NWK_RPT_BURST_DTMF_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 DtmfOnLength;
+    kal_uint8 DtmfOffLength;
+    kal_uint8 NumOfDigits;
+    kal_uint8 Digits[1];
+ } PACKED_POSTFIX  ValNwkRptBurstDtmfMsgT;
+
+ /* VAL_NWK_RPT_CP_EVENT_MSG */
+ typedef enum
+ {
+    VAL_EV_DISCONNECT = 1,
+    VAL_EV_PAGE_RECEIVED,
+    VAL_EV_STOPALERT,
+    VAL_EV_ABBR_ALERT,
+    VAL_EV_NOSVC,
+    VAL_EV_CDMA_INSVC,
+    VAL_EV_CPENABLED,
+    VAL_EV_CPDISABLED,
+    VAL_EV_PDOWNACK,
+    VAL_EV_CONNANALOG,
+    VAL_EV_CONNDIGITAL,
+    VAL_EV_ASSIGNED,
+    VAL_EV_ORIG_FAIL,
+    VAL_EV_NDSS_ORIG_CANCEL,
+    VAL_EV_INTERCEPT,
+    VAL_EV_REORDER,
+    VAL_EV_CC_RELEASE,
+    VAL_EV_CC_RELEASE_SO_REJ,
+    VAL_EV_FNM_RELEASE,
+    VAL_EV_DIALING_COMPLETE,
+    VAL_EV_DIALING_CONTINUE,
+    VAL_EV_MAINTENANCE,
+    VAL_EV_VP_ON,
+    VAL_EV_VP_OFF,
+    VAL_EV_PSIST_FAIL,
+    VAL_EV_TC_RELEASE_MS,
+    VAL_EV_TC_RELEASE_PDOWN,
+    VAL_EV_TC_RELEASE_DISABLE,
+    VAL_EV_TC_RELEASE_BS,
+    VAL_EV_TC_RELEASE_SO_REJECT,
+    VAL_EV_TC_RELEASE_TIMEOUT,
+    VAL_EV_TC_RELEASE_ACK_FAIL,
+    VAL_EV_TC_RELEASE_FADE,
+    VAL_EV_TC_RELEASE_LOCK,
+    VAL_EV_PAGE_FAIL,
+    VAL_EV_RETRY_TIMER_ACTIVE,
+    VAL_EV_RETRY_TIMER_INACTIVE,
+    VAL_EV_AMPS_INSVC,
+    VAL_EV_ORIG_REJECTED,
+    VAL_EV_ORIG_REJECTED_SO_NOT_SUPPORTED,
+    VAL_EV_BUSY_ORIG_FAIL,
+    VAL_EV_ACCT_ORIG_FAIL,
+
+    VAL_EV_PKT_ACTIVE = 50,
+    VAL_EV_PKT_RELEASED,
+    VAL_EV_PKT_DORMANT,
+
+    VAL_EV_ORIG_USER_CANCEL = 60,
+    VAL_EV_ORIG_ACCESS_FAIL,
+    VAL_EV_ORIG_NO_SVC_FAIL,
+    VAL_EV_ORIG_RETRY_ORDER,
+    VAL_EV_SR_ENABLED,
+    VAL_EV_SR_DISABLED,
+    VAL_EV_ORIG_REQ_RECEIVED,
+    VAL_EV_REG_SUCCESS,
+    VAL_EV_ORIG_BLOCKED_BY_IRAT,
+
+    VAL_EV_FLASHFAIL = 80,
+    VAL_EV_ANALOG_PAGE_RECEIVED,
+    VAL_EV_AMPS_IDLE,
+    VAL_EV_ABBR_INTERCEPT,
+    VAL_EV_ABBR_REORDER,
+    VAL_EV_CONNCOMPLETE,
+    VAL_EV_ENTER_OOSA,
+    VAL_EV_MSID_UPDATED,
+    VAL_EV_POWERUP_NV_READ_COMPLETE,
+    VAL_EV_LOCKED_ORIG_FAIL,
+    VAL_EV_TC_RELEASE_MT_CALL,
+#ifdef MTK_CBP
+    VAL_EV_SMS_CANCEL_BY_PWRDOWN,
+#endif
+#ifdef MTK_DEV_C2K_IRAT
+    VAL_EV_PSW_CARD_COMPLETE,
+#endif
+#ifdef MTK_CBP
+    VAL_EV_PRL_LIST_ID_UPDATE,
+#endif
+#if defined (__MCIF_SUPPORT__) && defined (__CO_ANTENNA__)
+    VAL_EV_1X_SLOTTED,
+    VAL_EV_1X_NOT_SLOTTED,
+#endif
+	VAL_EV_ACCESS_MAX_PROBE_FAIL,
+    VAL_RPT_CP_EVENT_INVALID
+ } ValRptCpEventT;
+
+
+//don't modify following macro, brew has referred to it
+#ifdef MTK_CBP
+#define VAL_PSW_MAX_CALLING_PARTY_NUMBER_SIZE 50
+#else
+#define VAL_PSW_MAX_CALLING_PARTY_NUMBER_SIZE 32
+#endif
+/***************************************************************************
+
+  EVENT NAME: VAL_PSW_EVT_CALL_DIALING_MSG
+  DESCRIPTION:
+    Sent when the call is dialing
+    (For example, when AIW sends a ATD13505372343 command to originate a call, UI also should display
+     "dialing 13505372343". We uses VAL_PSW_EVT_CALL_DIALING_MSG to inform UI this status.)
+  MESSAGE TYPE:
+    ValPswCallDialingMsgT
+
+****************************************************************************/
+typedef PACKED_PREFIX struct
+{
+  PswRequestModeT   RequestMode;     /* requested call type */
+  PswServiceOptionT ServiceOption;   /* requested service option */
+  kal_bool              Encoded;
+  kal_bool              DigitMode;       /* digit encoding indicator  */
+  kal_uint8             NumDigits;       /* number of digits to be dialled   */
+  kal_uint8             Digits[VAL_PSW_MAX_CALLING_PARTY_NUMBER_SIZE + 1];
+                                     /* of  ascii digits, null terminated string */
+} PACKED_POSTFIX  ValPswCallDialingMsgT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValRptCpEventT Msg;
+    kal_bool soIncluded;
+    PswServiceOptionT SO;
+    ValPswCallDialingMsgT dialData; /* Valid only for Event VAL_EV_DIALING_COMPLETE */
+ } PACKED_POSTFIX  ValRptCpEventMsgT;
+
+ /* VAL_NWK_RPT_CP_RESPONSE_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 Response;
+    kal_uint8 Request;
+ } PACKED_POSTFIX  ValNwkRptCpResponseMsgT;
+
+ /* VAL_NWK_RPT_CP_STATUS_MSG */
+ typedef enum
+ {
+    VAL_CP_DISABLED,            /* CP Disabled                              */
+    VAL_CP_SYS_DETERMINATION,   /* System Determination (6.6.1.1)           */
+    VAL_CP_PILOT_ACQUISITION,   /* Pilot Channel Acquisition (6.6.1.2)      */
+    VAL_CP_SYNC_ACQUISITION,    /* Sync Channel Acquisition (6.6.1.3)       */
+    VAL_CP_TIMING_CHANGE,       /* Timing Change (6.6.1.4)                  */
+    VAL_CP_CDMA_IDLE,           /* Idle (6.6.2)                             */
+    VAL_CP_UPDATE_OHD_INFO,     /* Update Overhead Information (6.6.3.2)    */
+    VAL_CP_PAGE_RESPONSE,       /* Page Response (6.6.3.3)                  */
+    VAL_CP_ORD_MSG_RESP,        /* Order/Message Response (6.6.3.4)         */
+    VAL_CP_ORIGINATION,         /* Origination Attempt (6.6.3.5)            */
+    VAL_CP_REGISTRATION,        /* Registration Attempt (6.6.3.6)           */
+    VAL_CP_MSG_TRANSMISSION,    /* Message Transmission (6.6.3.7)           */
+    VAL_CP_TC_INIT,             /* Traffic Channel Initialization (6.6.4.2) */
+    VAL_CP_TC_WAIT_ORDER,       /* TC Waiting for Order (6.6.4.3.1)         */
+    VAL_CP_TC_WAIT_ANSWER,      /* TC Waiting for MS Answer (6.6.4.3.2)     */
+    VAL_CP_TC_CONVERSATION,     /* TC Conversation (6.6.4.4)                */
+    VAL_CP_TC_RELEASE,          /* TC Release (6.6.4.5)                     */
+
+    VAL_CP_NUM_STATES,          /* Number of Call Processing States         */
+    VAL_CP_STATE_INVALID        /* Used by PSW for exception handling       */
+ } ValCPStateT;
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+    VAL_PSW_IN_SERVICE,
+    VAL_PSW_NO_SERVICE,
+    VAL_PSW_OOSA,
+#ifdef MTK_CBP
+    VAL_PSW_LIMITED_SERVICE,
+#endif
+    VAL_PSW_INVALID_SERVICE_STATUS
+} ValPswServiceStatusT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValPswServiceStatusT Service_status; /* Status of PS's service */
+    ValCPStateT State;                /* Call Processing State                */
+    ValCPStateT PrevState;            /* Previous Call Processing State       */
+    kal_uint8  Roam;                      /* ROAM Status                          */
+    kal_uint16 Band;                      /* Current Operating Band               */
+    kal_uint16 Channel;                   /* Current Channel Number               */
+    kal_uint8  Block;                     /* current CDMA block (if CDMA system)  */
+    kal_uint8  ServingSystem;             /* Serving System/Block                 */
+    kal_uint16 Sid;                       /* Last-Received System ID  (sid)       */
+    kal_uint16 Nid;                       /* Current Location Area ID (nid)       */
+    kal_uint16 PilotPn;                   /* PILOT_PN                             */
+    kal_uint8  pRevInUse;                 /* CDMA Protocol Revision that MS uses  */
+    kal_uint16 RegZone;                   /* Current Reg Zone Info                */
+ } PACKED_POSTFIX  ValRptCpStatusMsgT;
+
+ /* VAL_NWK_RPT_DATA_BURST_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 MsgNumber;
+    kal_uint8 BurstType;
+    kal_uint8 NumMsgs;
+    kal_uint8 NumFields;
+    kal_uint8 Data[1];
+ } PACKED_POSTFIX  ValNwkRptDataBurstMsgT;
+
+ /* VAL_NWK_RPT_HANDOFF_MSG */
+ typedef enum
+ {
+    VAL_IDLE_SAME_SYSTEM = 1,
+    VAL_IDLE_NEW_SYSTEM,
+    VAL_SOFT,
+    VAL_HARD,
+    VAL_TC_TO_AVC
+ } ValHandoffTypeT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool DisjointActiveSet;
+    kal_bool FrameOffsetChange;
+    kal_bool ChannelChange;
+    kal_bool LongCodeChange;
+    kal_bool ServCfgChange;
+ } PACKED_POSTFIX  ValHandoffTCReportT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValHandoffTypeT      Type;
+    ValHandoffTCReportT  Report;
+ } PACKED_POSTFIX  ValNwkRptHandoffMsgT;
+
+ /* VAL_NWK_RPT_REGISTRATION_ACCEPT_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool RoamIndPresent;
+    kal_uint8 RoamInd;
+ } PACKED_POSTFIX  ValNwkRptRegistrationAcceptMsgT;
+
+ /* VAL_NWK_RPT_SERVICE_CONFIG_MSG */
+ typedef enum
+ {
+    VAL_MUX_OPTION1 = 1,
+    VAL_MUX_OPTION2,
+    VAL_MUX_OPTION3,
+    VAL_MUX_OPTION4,
+    VAL_MUX_OPTION5,
+    VAL_MUX_OPTION6,
+    VAL_MUX_OPTION7,
+    VAL_MUX_OPTION8,
+    VAL_MUX_OPTION9,
+    VAL_MUX_OPTION10,
+    VAL_MUX_OPTION11,
+    VAL_MUX_OPTION12,
+    VAL_MUX_OPTION13,
+    VAL_MUX_OPTION14,
+    VAL_MUX_OPTION15,
+    VAL_MUX_OPTION16
+ } ValMultiplexOptionT;
+
+ //don't modify following Enum, brew has referred to it
+ typedef enum
+ {
+    VAL_SERVICE_OPTION_2 = 2,  /* Loopback               */
+    VAL_SERVICE_OPTION_3,      /* Voice                  */
+    VAL_SERVICE_OPTION_4,      /* Async Data Rate Set I  */
+    VAL_SERVICE_OPTION_5,      /* Asunc Fax Rate Set I   */
+    VAL_SERVICE_OPTION_6,      /* SMS                    */
+    VAL_SERVICE_OPTION_7,      /* Packet Data            */
+    VAL_SERVICE_OPTION_8,      /* Packet Data            */
+    VAL_SERVICE_OPTION_9,      /* Loopback               */
+    VAL_SERVICE_OPTION_10,     /* Unknown                */
+    VAL_SERVICE_OPTION_11,     /* Unknown                */
+    VAL_SERVICE_OPTION_12,     /* Async Data Rate Set II */
+    VAL_SERVICE_OPTION_13,     /* Asunc Fax Rate Set II  */
+    VAL_SERVICE_OPTION_14,     /* SMS                    */
+    VAL_SERVICE_OPTION_15,     /* Packet Data            */
+    VAL_SERVICE_OPTION_16,     /* Packet Data            */
+    VAL_SERVICE_OPTION_17,     /* Voice                  */
+    VAL_SERVICE_OPTION_18,     /* OTASP                  */
+    VAL_SERVICE_OPTION_19,     /* OTASP                  */
+    VAL_SERVICE_OPTION_20,     /* Unknown                */
+    VAL_SERVICE_OPTION_21,     /* Unknown                */
+    VAL_SERVICE_OPTION_22,     /* Packet Data            */
+    VAL_SERVICE_OPTION_23,     /* Packet Data            */
+    VAL_SERVICE_OPTION_24,     /* Packet Data            */
+    VAL_SERVICE_OPTION_25,     /* Packet Data            */
+    VAL_SERVICE_OPTION_26,     /* Packet Data            */
+    VAL_SERVICE_OPTION_27,     /* Packet Data            */
+    VAL_SERVICE_OPTION_28,     /* Packet Data            */
+    VAL_SERVICE_OPTION_29      /* Packet Data            */
+ } ValServiceOptionT;
+
+ typedef enum
+ {
+    VAL_NO_TRAFFIC = 0,
+    VAL_PRIMARY_TRAFFIC,
+    VAL_SECONDARY_TRAFFIC
+ } ValTrafficTypeT;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8       ConRef;
+    kal_uint16          ServiceOption;
+    ValTrafficTypeT ForTraffic;
+    ValTrafficTypeT RevTraffic;
+ } PACKED_POSTFIX  ValConnectionRecordT;
+
+#define VAL_MAX_CON_REC 10  /* not defined in the isotel spec */
+ typedef PACKED_PREFIX struct
+ {
+    ValMultiplexOptionT  ForMuxOption;
+    ValMultiplexOptionT  RevMuxOption;
+    kal_uint8              ForRates;
+    kal_uint8              RevRates;
+    kal_uint8              NumConRec;
+    ValConnectionRecordT ConRec[VAL_MAX_CON_REC];
+ } PACKED_POSTFIX  ValRptSvcConfigMsgT;
+
+ typedef PACKED_PREFIX struct
+ {
+    SysCdmaBandT        BandClassInd;
+    kal_uint8          BandBlockInd;
+    kal_uint16              Sid;
+    kal_uint16              Nid;
+    kal_uint8               NetworkType;
+    kal_uint8               ProtRev;
+ } PACKED_POSTFIX  ValNwkRptServiceReadyMsgT;
+
+ /* VAL_NWK_RPT_SYSTEM_TIME_MSG */
+#define VAL_SYSTEM_TIME_LEN SYS_SYSTIME_SIZE /* from sysdefs.h */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 SysTime[VAL_SYSTEM_TIME_LEN];
+    kal_uint8 LpSec;
+    kal_int8  LtmOff;
+    kal_uint8 DayLt;
+    kal_bool  Valid;
+ } PACKED_POSTFIX  ValNwkRptSystemTimeMsgT;
+
+ typedef PACKED_PREFIX struct
+ {
+    ValRptCpEventT AbortReason;
+    PswServiceOptionT SO;
+ } PACKED_POSTFIX  ValOrigFinishedMsgT;
+
+ /* VAL_NWK_RPT_PKT_STATE_MSG */
+ typedef enum
+ {
+    PKT_NULL,
+    PKT_ORIGINATED,   /* Origination confirmation */
+    PKT_CONNECTED,    /* RLP link established     */
+    PKT_DORMANT
+ } ValPktStateT;
+
+ typedef struct
+ {
+    ValPktStateT state;
+ } ValNwkRptPktStateMsgT;
+
+ /* VAL_NWK_RPT_PKT_DORM_TMR_MSG */
+ typedef struct
+ {
+    kal_uint8  dormTime;   /* unit of 0.1 sec */
+ } ValNwkRptPktDormTmrMsgT;
+
+ /* VAL_PRL_INFO_MSG */
+ typedef struct
+ {
+    NamNumber   namNumber;
+    void        *PtrToPrl;
+    kal_uint16      prlId;
+    kal_uint16      eri_version_number;
+ } ValPrlInfoMsgT;
+ /* VAL_NWK_RPT_PKT_STATE_MSG */
+ typedef enum
+ {
+    VAL_SYS_1XRTT,
+    VAL_SYS_EVDO
+ } ValSysTypeT;
+
+ /* Set MobileID message */
+typedef PACKED_PREFIX struct
+{
+  ExeRspMsgT  RspInfo;         /* Response routing information */
+  kal_uint32 SPC;
+  kal_uint64 securitycode;
+  kal_uint8       Id;
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+  PswDefineRcT    defineRc;
+#endif
+  kal_uint64       value;
+} PACKED_POSTFIX  ValSetMobileIDMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_bool Result;
+  kal_uint8 ResponseCode;
+} PACKED_POSTFIX  ValSetMobileIDResponseMsgT;
+
+#ifdef MTK_CBP
+/* verify SPC message */
+typedef struct
+{
+  kal_uint32 SPC;           /* SPC value to veirify */
+  kal_bool reset;           /* reset retry count or not */
+} ValVerifySPCMsgT;
+
+typedef struct
+{
+  kal_bool Result;
+  kal_uint8 ResponseCode;
+} ValVerifySPCResponseMsgT;
+#endif
+
+ /* VAL_PSW_E911_MODE_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool  mode;
+ } PACKED_POSTFIX  ValEmergencyModeMsgT;
+
+#ifdef MTK_CBP
+typedef enum
+{
+    VAL_ROAM_STATUS_HOME = 0,
+    VAL_ROAM_STATUS_INTERNATIONAL_ROAM,        /* used if carrier defines certain ERI for international roam */
+    VAL_ROAM_STATUS_GENERIC_OR_DOMESTIC_ROAM,  /* used whenever international ERI array is empty or when roaming on non international (i.e. domestic) system  */
+    VAL_ROAM_STATUS_UNKOWN = 255
+} ValRoamTypeT;
+
+typedef enum
+{
+    VAL_SYS_NOT_IN_PRL = 0,
+    VAL_SYS_IN_PRL,
+    VAL_SYS_IN_PRL_UNKNOWN = 255
+} ValSysInPrlStatusT;
+
+  /* VAL_CSS_PRL_IND_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    ValSysTypeT sys;
+	kal_bool	inPrl;
+} PACKED_POSTFIX  ValCssPrlIndMsgT;
+
+typedef enum
+{
+    VAL_POWER_UP_STAGE = 0,
+    VAL_NETWORK_FOUND_STAGE
+}ValNwkSrvStageT;
+#endif
+
+  /* VAL_ROAM_INDICATION_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8   RoamInd;
+    ValSysTypeT sys;
+#ifdef MTK_CBP
+    ValRoamTypeT  regRoamStatus;
+#endif
+    kal_uint8   defaultRoamInd;
+    kal_uint16  eri_version_number;
+    kal_bool    valid_eri_entry;
+    kal_uint8   icon_image_id;
+    kal_uint8   icon_mode;
+    kal_uint8   call_prompt_id;
+    kal_uint8   alert_call_counter_id;
+    kal_uint8   char_encoding_type;
+    kal_uint8   text_length;
+    kal_uint8   text[MAX_ERI_TEXT_LENGTH];
+} PACKED_POSTFIX  ValRoamIndicationMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  ExeRspMsgT  RspInfo;         /* Response routing information */
+} PACKED_POSTFIX  ValEriVersionNumberMsgT;
+typedef PACKED_PREFIX struct
+{
+  kal_uint16            eri_version_number;
+} PACKED_POSTFIX  ValEriVersionNumberRspMsgT;
+
+
+ /* VAL_RPT_CQA_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_bool Alarm;
+ } PACKED_POSTFIX  ValReportCQAMsgT;
+
+#ifdef KDDI_EXTENSIONS
+ /* VAL_EXTENDED_DATA_BURST_RX_IND_MSG */
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint16 MCC;
+    kal_uint8   DB_Subtype;
+    kal_uint8   Chg_Ind;
+    kal_uint8   Subunit;
+    kal_uint8   Unit;
+ } PACKED_POSTFIX  ValExtendedBurstRxIndMsgT;
+#endif
+
+typedef PACKED_PREFIX struct
+{
+ kal_uint16 serviceOption;
+} PACKED_POSTFIX  ValRptServiceOptionMsgT;
+
+typedef PACKED_PREFIX struct
+{
+   DsPreArangT PreArrMode;
+} PACKED_POSTFIX ValRptDataPrearrangeMsgT;
+
+typedef PACKED_PREFIX struct
+{
+	kal_uint16 mcc;
+	kal_uint8 imsi_11_12;
+#ifdef MTK_CBP
+    kal_uint16 aiMcc;
+#endif
+} PACKED_POSTFIX ValNetworkInfo;
+
+#ifdef MTK_CBP
+typedef PACKED_PREFIX struct
+{
+    kal_bool existence;
+} PACKED_POSTFIX ValNwkExistenceInfoMsg;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool inCallState;
+    kal_uint16 serviceOption;
+} PACKED_POSTFIX ValPswRptServiceOptionMsgT;
+#endif
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+typedef enum
+{
+    ENCRYPT_SUCCESS = 0,
+    ENCRYPT_FAIL,
+    ENCRYPT_TIMEOUT,
+    ENCRYPT_UNKOWN = 255
+} EncryptRspTypeT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool result;
+    EncryptRspTypeT reason;
+} PACKED_POSTFIX ValEncryptVoiceRspMsgT;
+#endif
+
+ /*-----------------------------------------------------------------
+ * SMSHandler
+ *----------------------------------------------------------------*/
+ /* these constants are redefined here to avoid recompiling PSW for VAL
+    they all have relevant constants defined in pswsmstune.h */
+ #define VAL_SMS_MAX_ADDRESS_CHARS          32 /* SMS_MAX_ADDRESS_CHARS */
+ #define VAL_SMS_MAX_USERDATA_LENGTH        220/* SMS_MAX_USERDATA_LENGTH */
+ #define VAL_SMS_MAX_SUBADDRESS_CHARS       30 /* SMS_MAX_SUBADDRESS_CHARS */
+ #define VAL_SMS_MAX_NUM_SERVICE_CATEGORIES 10 /* SMS_MAX_NUM_SERVICE_CATEGORIES */
+ #define VAL_SMS_MAX_CHAR_CATEGORY          20 /* SMS_MAX_CHAR_CATEGORY */
+
+/* common to a couple of messages */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 ErrorClass;
+  kal_uint8 CauseCode;
+} PACKED_POSTFIX  ValSmsCauseCodeT;
+
+/* VAL_SMS_CAUSE_CODE_STATUS_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16           SeqNum;  /* The PSW-VAL SeqNum id used in msg assembly  */
+  kal_uint8            SmsType; /* 0 = MO and 1 = MT, so can tell which SeqNum */
+  ValSmsCauseCodeT Error;   /* Error condition (if any) of last SMS message   */
+} PACKED_POSTFIX  ValSmsCauseCodeStatusMsgT;
+
+ /* VAL_SMS_DELIVER_IND_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_uint16 SeqNum;
+   kal_uint8  MsgType;
+   kal_uint8  NumMsgs;
+   kal_uint8  MsgEncoding;
+   kal_uint8  NumFields;                          /* Length of data in octets        */
+   kal_uint8  Char[ VAL_SMS_MAX_USERDATA_LENGTH ];     /* User Data field of message      */
+} PACKED_POSTFIX  ValSmsUserDataMsgT;
+
+ /* VAL_SMS_RX_IND_MSG */
+#define VAL_MAX_SMS_SIZE   256   /* ??? change this to header + (maxsize -header) */
+typedef PACKED_PREFIX struct
+{
+  kal_bool  Broadcast;
+  kal_uint8 MsgData[VAL_MAX_SMS_SIZE];
+  kal_bool  DataTruncated; /* KAL_TRUE: if ascii message is longer than VAL_MAX_SMS_SIZE */
+} PACKED_POSTFIX  ValSmsRxIndMsgT;
+
+/* VAL_SMS_TX_RSP_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_bool  TxStatus;
+} PACKED_POSTFIX  ValSmsTxRspMsgT;
+
+/* VAL_SMS_TST_CONNECT_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16   TeleSrvId;
+} PACKED_POSTFIX  ValSmsTstConnectMsgT;
+
+/* VAL_SMS_TST_BCAST_CONNECT_MSG */
+/* VAL_SMS_TST_BCAST_PREF_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint32   SvcMask;
+  kal_uint32   LangMask;
+  kal_uint8 Priority;
+} PACKED_POSTFIX  ValSmsTstBCastParmsMsgT;
+
+/* VAL_SMS_TST_CANCEL_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16 TeleSrvId;
+  kal_uint16 MsgId;
+    kal_bool   SendSmsCancelDb;
+} PACKED_POSTFIX  ValSmsTstCancelMsgT;
+
+/* VAL_SMS_TST_DISCONNECT_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16 TeleSrvId;
+} PACKED_POSTFIX  ValSmsTstDisconnectMsgT;
+
+/* VAL_SMS_TST_PREF_SRV_OPT_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint32 SrvOpt;
+} PACKED_POSTFIX  ValSmsTstPrefSrvOptMsgT;
+
+/* VAL_SMS_TST_SUBMIT_MSG - ETS: Create a mobile originated (user submitted) */
+/*                               SMS message                                 */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16   TeleSrvId;
+  kal_bool     SendOnTraffic;
+  kal_uint16   MsgId;
+  kal_bool     DigitMode;
+  kal_bool     NumberMode;
+  kal_uint8    NumberType;
+  kal_uint8    DestNumDigits;
+  char     DestDigits[VAL_SMS_MAX_ADDRESS_CHARS];
+  kal_uint8    CallbackNumDigits;
+  kal_uint8    CallbackDigits[VAL_SMS_MAX_ADDRESS_CHARS];
+  kal_uint8    DefaultMsgs;
+  kal_uint8    UserDefinedMsgEncoding;
+  kal_uint8    UserDefinedMsgOctets[VAL_SMS_MAX_USERDATA_LENGTH];
+  kal_bool     UserAck;
+  kal_bool     DeliveryAck;
+  kal_uint8    Validity;
+  kal_uint8    Validity_Year;
+  kal_uint8    Validity_Month;
+  kal_uint8    Validity_Day;
+  kal_uint8    Validity_Hours;
+  kal_uint8    Validity_Minutes;
+  kal_uint8    Validity_Seconds;
+  kal_uint8    Relative_Validity;
+  kal_uint8    Delivery;
+  kal_uint8    Delivery_Year;
+  kal_uint8    Delivery_Month;
+  kal_uint8    Delivery_Day;
+  kal_uint8    Delivery_Hours;
+  kal_uint8    Delivery_Minutes;
+  kal_uint8    Delivery_Seconds;
+  kal_uint8    Relative_Delivery;
+  kal_uint8    Priority;
+  kal_uint8    Privacy;
+  kal_uint8    AlertonDelivery;
+  kal_uint8    Language;
+  kal_uint16   ServCategory;
+} PACKED_POSTFIX  ValSmsTstSubmitMsgT;
+
+/* VAL_SMS_TST_TERM_STATUS_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Status;
+} PACKED_POSTFIX  ValSmsTstTermStatusMsgT;
+
+/* VAL_SMS_TST_USER_ACK_MSG */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16 TeleSrvId;
+  kal_uint8  MsgEncoding;
+  kal_uint8  NumFields;
+  kal_uint8  Char[VAL_SMS_MAX_USERDATA_LENGTH];
+} PACKED_POSTFIX  ValSmsTstUserAckMsgT;
+
+/* VAL_SMS_TST_RETX_AMOUNT_MSG */
+typedef PACKED_PREFIX struct
+{
+    kal_uint8 NumTempRetries;   /* Max # of retries if BS returns errorCode = Temporary */
+    kal_uint8 NumPermRetries;   /* Max # of retries if BS returns errorCode = Permanent */
+    kal_uint8 NumTimeoutRetries;/* Max # of retries if no BS SMS Ack received and timeoutoccurs */
+} PACKED_POSTFIX  ValSmsTstRetxAmountMsgT;
+
+/* -> ??? associated to what message in pswsms.c */
+typedef PACKED_PREFIX struct
+{
+  kal_bool  DigitMode;
+  kal_bool  NumberMode;
+  kal_uint8 NumberType;
+  kal_uint8 NumberPlan;
+  kal_uint8 NumFields;
+  kal_uint8 Char[ VAL_SMS_MAX_ADDRESS_CHARS ];
+} PACKED_POSTFIX  ValSmsMCAddrT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Type;
+  kal_bool  Odd;
+  kal_uint8 NumFields;
+  kal_uint8 Char[ VAL_SMS_MAX_SUBADDRESS_CHARS ];
+} PACKED_POSTFIX  ValSmsMCSubaddrT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 replySeq;
+} PACKED_POSTFIX ValSmsBearerReplyOptionT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Year;
+  kal_uint8 Month;
+  kal_uint8 Day;
+  kal_uint8 Hours;
+  kal_uint8 Minutes;
+  kal_uint8 Seconds;
+} PACKED_POSTFIX  ValSmsAbsTimeT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8  dispmode;
+  kal_uint8  reserved;
+} PACKED_POSTFIX  VAL_SMS_DISPMODE;  /* ??? change to conformant typedef */
+
+ typedef enum
+ {
+    VAL_CAT_UNKNOWN,
+    VAL_CAT_EMERGENCIES,
+    VAL_CAT_ADMINISTRATIVE,
+    VAL_CAT_MAINTENANCE,
+    VAL_CAT_GEN_NEWS_LOCAL,
+    VAL_CAT_GEN_NEWS_REGIONAL,
+    VAL_CAT_GEN_NEWS_NATIONAL,
+    VAL_CAT_GEN_NEWS_INTERNATIONAL,
+    VAL_CAT_FINANCE_NEWS_LOCAL,
+    VAL_CAT_FINANCE_NEWS_REGIONAL,
+    VAL_CAT_FINANCE_NEWS_NATIONAL,
+    VAL_CAT_FINANCE_NEWS_INTERNATIONAL,
+    VAL_CAT_SPORTS_NEWS_LOCAL,
+    VAL_CAT_SPORTS_NEWS_REGIONAL,
+    VAL_CAT_SPORTS_NEWS_NATIONAL,
+    VAL_CAT_SPORTS_NEWS_INTERNATIONAL,
+    VAL_CAT_ENTERTAINMENT_NEWS_LOCAL,
+    VAL_CAT_ENTERTAINMENT_NEWS_REGIONAL,
+    VAL_CAT_ENTERTAINMENT_NEWS_NATIONAL,
+    VAL_CAT_ENTERTAINMENT_NEWS_INTERNATIONAL,
+    VAL_CAT_LOCAL_WEATHER,
+    VAL_CAT_TRAFFIC,
+    VAL_CAT_FLIGHT_SCHEDULE,
+    VAL_CAT_RESTAURANTS,
+    VAL_CAT_LODGINGS,
+    VAL_CAT_RETAIL_DIRECTORY,
+    VAL_CAT_ADVERTISEMENT,
+    VAL_CAT_STOCK_QUOTES,
+    VAL_CAT_EMPLOYMENT_OPPORTUNITIES,
+    VAL_CAT_MEDICAL_HEALTH,
+    VAL_CAT_TECH_NEWS,
+    VAL_CAT_MULTI_CATEGORY,
+
+    VAL_CAT_CMAS_PRESIDENT_ALERT = 0X1000,  /* 3GPP2 C.R1001-G SPEC */
+    VAL_CAT_CMAS_EXTREME_THREAT_TO_LIFE,
+    VAL_CAT_CMAS_SEVERE_THREAT_TO_LIFE,
+    VAL_CAT_CMAS_CHILD_ABDUCTION_EMERGNY,
+    VAL_CAT_CMAS_TEST_MESSAGE,
+    VAL_CAT_CMAS_RESERVED_MAX =0X10FF
+ } VAL_SMS_SERVICE_CAT;  /* ??? change to conformant typedef */
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8  OperationCode;
+    kal_uint16 SrvCat;
+    kal_uint8  Lang;
+    kal_uint8  MaxMsg;
+    kal_uint8  Alert;
+    kal_uint8  NumChar;
+    kal_uint8  Char[ VAL_SMS_MAX_CHAR_CATEGORY ];
+ } PACKED_POSTFIX  VAL_SRV_CAT_RECORD;
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint8 msgEncoding;
+    kal_uint8 numCat;
+    VAL_SRV_CAT_RECORD cat[VAL_SMS_MAX_NUM_SERVICE_CATEGORIES];
+ } PACKED_POSTFIX  VAL_SRV_CAT_DATA;
+#ifdef KDDI_EXTENSIONS
+typedef PACKED_PREFIX struct
+{
+    kal_uint32 msgIpAddr;
+    kal_uint8 CtlFlag;
+} PACKED_POSTFIX ValSmsIpAddrT;
+#endif
+
+typedef PACKED_PREFIX struct
+{
+   kal_uint8 ErrorClass;
+   kal_uint8 MsgStatusCode;
+} PACKED_POSTFIX  VAL_MSG_STATUS;
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+typedef struct
+{
+   kal_uint8	 msgType;
+   kal_uint8	 subMsgType;
+   kal_uint8	 mode;
+   kal_bool	     SignatureVerifyResult;
+   kal_bool	 	 DecryptResult;
+   kal_bool	 	 RandomVerifyResult;
+   kal_bool	 	 IsKmcVerCrt;
+   kal_uint8	 callLen;
+   kal_uint8	 callNum[30];
+   kal_uint8	 timeStmp[7];
+   kal_uint8	 cause;
+   kal_bool	 	 msgCheckResult;
+} ValCryptSmsInfoT;
+#endif
+
+
+ typedef PACKED_PREFIX struct
+ {
+    kal_uint16            SeqNum;
+    kal_uint16            TeleSrvId;
+    kal_uint8             NumUserDataMsgs;
+    kal_uint16            MsgId;
+    kal_uint8             Type;
+    kal_bool              HeaderInd;
+    kal_bool              UserAckPres;
+    kal_bool              UserAck;
+    ValSmsMCAddrT     Addr;
+    kal_bool              SubaddrPres;
+    ValSmsMCSubaddrT  Subaddr;
+    ValSmsBearerReplyOptionT BearerReplyOption;
+    kal_bool              CatPres;
+    VAL_SMS_SERVICE_CAT  Cat;
+    kal_bool              UsrRspCodePres;
+    kal_uint8             UsrRspCode;
+    kal_bool              TimeStampPres;
+    ValSmsAbsTimeT    TimeStamp;
+    kal_bool              ValTimeAbsPres;
+    ValSmsAbsTimeT    ValTimeAbs;
+    kal_bool              ValTimeRelPres;
+    kal_uint8             ValTimeRel;
+    kal_bool              DelTimeAbsPres;
+    ValSmsAbsTimeT    DelTimeAbs;
+    kal_bool              DelTimeRelPres;
+    kal_uint8             DelTimeRel;
+    kal_bool              PriPres;
+    kal_uint8             Pri;
+    kal_bool              PrvPres;
+    kal_uint8             Prv;
+    kal_bool              ReplyOptionPres;
+    kal_bool              UserAckReq;
+    kal_bool              DakReq;
+    kal_bool              ReadAckReq;
+    kal_bool              NumMsgPres;
+    kal_uint8             NumMsg;
+    kal_bool              AlertPres;
+    kal_uint8             Alert;
+    kal_bool              LangPres;
+    kal_uint8             Lang;
+    kal_bool              CallbackPres;
+    ValSmsMCAddrT     Callback;
+    kal_bool              DispModePres;
+    VAL_SMS_DISPMODE  DispMode;
+    kal_bool              MsgDepIndexPres;
+    kal_uint16            MsgDepIndex;
+    kal_bool              srvCatDataPres;
+    VAL_SRV_CAT_DATA  srvCatData;
+	kal_bool              msgStatusPres;
+    VAL_MSG_STATUS msgStatus;
+    kal_bool              transport_ack_reqd;
+#ifdef MTK_CBP_ENCRYPT_VOICE
+	kal_bool			  cryptSmsInfoPres;
+    ValCryptSmsInfoT   cryptSmsInfo;
+#endif
+
+#ifdef KDDI_EXTENSIONS
+    kal_bool              msgIpAddrPres;
+    ValSmsIpAddrT  msgIpAddress;
+    kal_bool              NotifyFlagPres;
+    kal_uint8             NotifyFlag;
+    kal_bool              UimIdPres;
+    kal_uint32           UimId;
+#endif
+ } PACKED_POSTFIX  ValSmsDeliverIndMsgT;
+
+ /* ??? associated to what sms message */
+typedef PACKED_PREFIX struct
+{
+  kal_uint16           TeleSrvId;
+  kal_uint16           SeqNum;
+  ValSmsCauseCodeT Error;
+} PACKED_POSTFIX  ValSmsErrorMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 SeqNum;
+} PACKED_POSTFIX  ValSmsAckL2AckedMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 MsgEncoding;    /* TSB58A defined representation of Char fields     */
+  kal_uint8 NumFields;      /* the number of Chars present (in the array below) */
+  kal_uint8 AsciiText[225]; /* the decoded user data text                       */
+} PACKED_POSTFIX  ValSmsTstDecDataMsgT;
+
+ /*-----------------------------------------------------------------
+ * RLP Handler
+ *----------------------------------------------------------------*/
+typedef PACKED_PREFIX struct
+{
+  kal_uint32 FwdRateByte;
+  kal_uint32 RevRateByte;
+} PACKED_POSTFIX ValRlpDataRateMsgT;
+ /*-----------------------------------------------------------------
+ * HWD Handler
+ *----------------------------------------------------------------*/
+/* VAL_HWD_BATTERY_READ_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_uint16   AuxAdcValue;
+   kal_uint16   BatterVoltage;  /* in mV */
+} PACKED_POSTFIX  ValBatteryReadDataMsgT;
+
+/* VAL_HWD_TEMPERATURE_READ_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_uint16   AuxAdcValue;
+   kal_int8     TempCelcius;  /* in C */
+} PACKED_POSTFIX  ValTempInfoDataMsgT;
+
+/* VAL_HWD_RX_TX_POWER_INFO_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   ExeRspMsgT  RspInfo;      /* Response routing information */
+   kal_int16    RxPowerDbmQ6;
+   kal_int16    DivRxPowerDbmQ6;
+   kal_int16    TxPowerDbmQ6;
+   kal_uint16   RxGainState;
+   kal_uint16   DivRxGainState;
+   kal_uint16   TxGainState;
+   kal_uint16   TxAgcPdmRep;
+   kal_int16    TxClosedLoopAdjQ6;
+   kal_int16    RxGainIntegral;
+   kal_int16    RxGainCoarse;
+   kal_int16    RxGainFine;
+   kal_int16    RxGainPdmQ3;
+   kal_int16    TxConstPowerOffsetQ6;
+   kal_int16    AvgActiveEcIoQ6;
+   kal_int16    TxAnt;
+} PACKED_POSTFIX  ValRxTxPwrInfoMsgT;
+
+/* VAL_PSW_PILOT_PWR_RPT_MSG */
+typedef PACKED_PREFIX struct
+{
+   ExeRspMsgT RspInfo;      /* Response routing information */
+   kal_int16    AvgActiveEcIoQ6;
+} PACKED_POSTFIX  ValPswPilotPwrRptMsgT;
+
+/* VAL_CSS_CP_PWR_CTRL_MSG */
+typedef PACKED_PREFIX struct
+{
+    kal_bool              PowerUp;
+    OperationModeT    OpMode;
+} PACKED_POSTFIX ValCssCpPwrCtrlMsgT;
+
+/*-----------------------------------------------------------------
+* VMEMO Handler
+*----------------------------------------------------------------*/
+/* common to data messages for VMEM and VREC */
+typedef PACKED_PREFIX struct
+{
+   kal_uint8   Rate;             /* Rate of speech */
+   kal_uint8   SpchData[1];      /* Speech data (size derived from rate) */
+} PACKED_POSTFIX  ValVmemDataMsgT;
+
+/* VAL_VMEM_DATA_OFFLINE_MSG */
+typedef ValVmemDataMsgT ValVmemDataOfflineMsgT;
+
+/* VAL_VMEM_DATA_ONLINE_MSG */
+typedef ValVmemDataMsgT ValVmemDataOnlineMsgT;
+
+/* VAL_VREC_MIXED_DATA_MSG */
+typedef ValVmemDataMsgT ValVrecMixedDataMsgT;
+
+/* VAL_VREC_PCM_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_uint16 SpchData[160];      /* Speech data (size is fixed at 160) */
+} PACKED_POSTFIX  ValVrecPcmDataMsgT;
+
+
+/* VAL_L1DTST_GETPHONESTATUS; rspmsg data structure defined by L1D */
+//typedef ExeRspMsgT ValL1DTstGetPhoneStatusMsgT;
+
+
+/* VAL_L1D_RSSI_RPT_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_int16    Rssi;
+} PACKED_POSTFIX  ValL1dRssiRptMsgT;
+
+typedef enum
+{
+  VAL_RTC_DATA_TIME,
+  VAL_RTC_DATA_DATE  /*gqdeng add get rtc data type for time or date information*/
+} ValRtcCurDataT;
+
+  /*-----------------------------------------------------------------
+ * HRPD Handler
+ *----------------------------------------------------------------*/
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+typedef enum
+{
+    VAL_HRPD_REV_0,
+    VAL_HRPD_REV_A,
+    VAL_EHPRD_REV_A,
+    VAL_DO_SESS_REV_INVALID = 0xFF
+} ValDoSessionRevE;
+#endif
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8   SessionOpened; /* 0: session closed, 1-session opened on rev0, 2:session opened on revA */
+    kal_bool    IsEhrpd;
+} PACKED_POSTFIX  ValHrpdSessionStatusMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 Success; /* 0: fail, 1-success*/
+} PACKED_POSTFIX  ValHrpdA12AuthStatusMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool InService;
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+    ValDoSessionRevE SessRev; /* 0: HRPD rev.0, 1: HRPD rev.A, 2: ERHRPD rev.A */
+#endif
+} PACKED_POSTFIX  ValHrpdSvcStatusMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_bool acqd;
+  kal_uint16 Band;          /* Current Operating Band               */
+  kal_uint16 Channel;       /* Current Channel Number               */
+  kal_uint8 SysType;
+  kal_uint8 _ATRevisionNum;
+  kal_uint16 PilotPn;       /* PILOT_PN  */
+
+} PACKED_POSTFIX  ValHrpdNtwkAcqdMsgT;
+
+typedef PACKED_PREFIX struct
+{
+kal_uint16 Ref_Sid;
+kal_uint16 Ref_Nid;
+kal_uint16 Ref_BaseID;
+
+} PACKED_POSTFIX ValCellIDInforT;
+typedef PACKED_PREFIX struct
+{
+kal_uint16 Ref_Sid_Update;
+kal_uint16 Ref_Nid_Update;
+kal_uint16 Ref_BaseID_Update;
+kal_int32   Ref_Lat_Update;
+kal_int32   Ref_Lon_Update;
+} PACKED_POSTFIX ValCellIDInforUpdateT;
+typedef PACKED_PREFIX struct
+{
+   kal_bool     PowerUp;                       /* KAL_TRUE power up, KAL_FALSE power down */
+} PACKED_POSTFIX  ValPswPowerMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint32 prefMode;  /* 4: DETERMINE_MODE_AUTOMATICALLY;  7: CDMA_ONLY; 8: HDR_ONLY */
+} PACKED_POSTFIX ValDoParmSetSucMsgT;
+
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+typedef PACKED_PREFIX struct
+{
+   PswTestModeT Mode;                /* Test mode */
+   kal_uint16 Enabled;               /* Mode Qualifier, typically equivalent to ON/OFF */
+   kal_uint16 Value;                 /* Mode value*/
+} PACKED_POSTFIX PswEngineTestModeGetCnfMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool   defineRcForAllSo;
+    kal_uint8  forRc;
+    kal_uint8  revRc;
+} PACKED_POSTFIX ValPswGetServiceConfigCnfMsgT;
+#endif
+
+typedef PACKED_PREFIX struct
+{
+   PswRequestModeT   RequestMode;         /* requested call type          */
+   PswCallModeT      CallMode;            /* call type (e.g. emergency, OTASP, WPS ...) */
+   PswServiceOptionT ServiceOption;       /* requested service option     */
+   kal_bool              Encoded;
+   kal_bool              DigitMode;           /* digit encoding indicator     */
+   PswNumberTypeT    NumberType;          /* type of number               */
+   PswNumberPlanT    NumberPlan;          /* numbering plan               */
+   kal_uint8             NumDigits;           /* number of digits to be dialled */
+   kal_uint8             OtaspMode;           /* target band or system for OTASP Orig */
+   kal_uint8             Digits[CP_MAX_CALLING_PARTY_NUMBER_SIZE +1];/* ascii digits, null terminated string */
+   PswCallingPartyNumberT CPNInfo;         /* Calling Party Number Info   */
+   PswServiceT       ServiceType;          /* service types.              */
+   kal_bool              MultipleCallingPartyNum; /* MS has > 1 calling party num */
+   kal_bool              SendCallingPartySubaddr; /* subaddress included?     */
+   PswSubaddressT    CallingPartySubaddr;
+   kal_bool              SendCalledPartySubaddr;  /* subaddress included?     */
+   PswSubaddressT    CalledPartySubaddr;
+   kal_uint16            pktDataIncTimer;           /* in seconds*/
+   NspeAppT          pktDataAppType;
+} PACKED_POSTFIX  ValPswCallInitiateMsgT;
+
+#ifdef MTK_DEV_C2K_IRAT
+/* _RPT_CP_EVENT_MSG */
+typedef enum
+{
+   RSVAS_VAL_EVENT_RECV_SUSPEND,
+   RSVAS_VAL_EVENT_RECV_RESUME,
+   RSVAS_VAL_EVENT_INVALID
+} ValRsvasEventT;
+
+typedef PACKED_PREFIX struct
+{
+  ValRsvasEventT event; /* event of C2K RSVAS received */
+} PACKED_POSTFIX  ValRptC2kRsvasEventMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  uim_access_option_enum    CardAccessOption;
+} PACKED_POSTFIX  ValPswC2kSimIndexMsgT;
+#endif
+
+ #endif  /* PSWVALAPI_H *//**Log information: \main\vtui2_5x\1 2008-12-03 05:15:45 GMT gdeng
+** HREF#3454**/
+/**Log information: \main\vtui2_5x\2 2008-12-08 07:10:59 GMT gdeng
+** HREF#34554**/
+/**Log information: \main\vtui2_5x\vtui2_5x_gdeng_href4745\1 2009-01-10 05:53:58 GMT gdeng
+** HREF#4745**/
+/**Log information: \main\vtui2_5x\3 2009-01-10 09:00:07 GMT cshen
+** merge from branch vtui2_5x_gdenghref4745**/
+/**Log information: \main\helios_dev\helios_dev_gdeng_href6379\1 2009-04-13 10:42:05 GMT gdeng
+** HREF#6379**/
+/**Log information: \main\helios_dev\3 2009-04-14 04:45:26 GMT cshen
+** merge from branch helios_dev_gdeng_href6379**/
+/**Log information: \main\helios_dev\helios_dev_jyin_href6535\1 2009-04-18 11:02:37 GMT jyin
+** HREF#6535**/
+/**Log information: \main\helios_dev\4 2009-04-18 11:10:18 GMT jyin
+** HREF#6535**/
+/**Log information: \main\helios_dev\helios_dev_zlin_href6743\1 2009-05-07 02:07:14 GMT zlin
+** HREF#6743. LCD wakeup and audio play conflict issue.**/
+/**Log information: \main\helios_dev\5 2009-05-07 02:10:14 GMT zlin
+** Merge zlin href6743.**/
+/**Log information: \main\helios_dev\helios_dev_gdeng_href6987\1 2009-05-19 07:20:21 GMT gdeng
+** HREF#6987**/
+/**Log information: \main\helios_dev\6 2009-05-19 09:18:41 GMT cshen
+** merge from helios_dev_gdeng_href6987**/
+/**Log information: \main\helios_dev\helios_dev_hbi_href7897\1 2009-08-03 09:14:32 GMT hbi
+** HREF#7897:Merge Wendy cbp57_wavis_scbp4873 to fix audio issue when Vmemo stop **/
+/**Log information: \main\helios_dev\7 2009-08-03 09:31:14 GMT ygwu
+** HREF#7897**/
+/**Log information: \main\helios_dev\helios_dev_gdeng_href8638\1 2009-10-12 08:02:30 GMT gdeng
+** HREF#8638**/
+/**Log information: \main\helios_dev\8 2009-10-12 08:44:15 GMT cshen
+** merge from helios_dev_gdeng_href8638**/
+/**Log information: \main\CBP7FeaturePhone\5 2010-09-07 08:50:05 GMT cshen
+** merge from CBP7FeaturePhone_hjin_href14109**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_gdeng_href14724\1 2010-09-21 09:30:57 GMT gdeng
+** HREF#14724**/
+/**Log information: \main\CBP7FeaturePhone\6 2010-09-21 09:42:31 GMT cshen
+** merge from cbp7featurephone_gdeng_href14724
+|**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_wzhou_href15015\1 2010-10-14 02:53:22 GMT wzhou
+** FIX CR 15015 **/
+/**Log information: \main\CBP7FeaturePhone\7 2010-10-18 03:14:26 GMT jzwang
+** href15015**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_yxma_href15574\1 2010-11-11 05:33:40 GMT yxma
+** href15574\ ,add VAL_EV_ORIG_USER_CANCEL_WITH_SO**/
+/**Log information: \main\CBP7FeaturePhone\8 2010-11-11 06:00:21 GMT cshen
+** merge from CBP7FeaturePhone_yxma_href15574**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_nicholaszhao_href17384\1 2011-07-04 08:06:39 GMT nicholaszhao
+** HREF#17384**/
+/**Log information: \main\CBP7FeaturePhone\9 2011-07-12 09:40:18 GMT marszhang
+** HREF#17384**/
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\1 2012-07-26 06:28:12 GMT cshen
+** cbp80_cshen_scbp10098**/
+/**Log information: \main\Trophy\Trophy_wzhou_href22163\1 2013-04-25 03:05:50 GMT wzhou
+** HREF#22163: add A12 auth status message in VAL**/
+/**Log information: \main\Trophy\1 2013-04-25 03:06:27 GMT jzwang
+** href#22163**/
+/**Log information: \main\Trophy\Trophy_zjiang_href22291\1 2013-10-28 02:51:20 GMT zjiang
+** HREF#22291.fix crts21779.ºÅÂ볤¶ÈÓÉ15µ÷ÕûΪ32.**/
+/**Log information: \main\Trophy\3 2013-10-28 02:52:57 GMT cshen
+** href#22291**/
+/**Log information: \main\Trophy\Trophy_zjiang_href22291_fix1\1 2013-10-28 06:47:54 GMT zjiang
+** HREF#22291.fix HREF#22291.**/
+/**Log information: \main\Trophy\4 2013-10-28 06:55:19 GMT cshen
+** href#22291**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/register.h b/mcu/interface/protocol/as_c2k/1xrtt/register.h
new file mode 100644
index 0000000..98d3506
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/register.h
@@ -0,0 +1,306 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     register.h
+ *
+ * Purpose:    Definitions and Prototypes for registration procedures.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.3 $
+ *   $Modtime$
+ *    $Author: hans $
+ *
+ *       $Log: register.h $
+ *
+ *       06 08 2020 tina.ma
+ *       [MOLY00514816] ??(Bugs) 2883828??19165?????????????19165????CMCC??+CT?IMS+1x????5G?? ???????
+ *       	
+ *       	.
+ *
+ *       04 24 2020 tina.ma
+ *       [MOLY00516295] [DH30_VZW][GFIT][CA 1355] TC 5.2.16 Device does not register on VZW 1X until MO call is made when returning from Canada only coverage to mixed coverage.
+ *       	
+ *       	.
+ *
+ *       01 19 2020 tina.ma
+ *       [MOLY00475246] ?CDMA???????????6F2D???????CDMA?REG_ENABLE=KAL_FALSE????????????????????????
+ *       	
+ *       	.
+ *
+ *       07 09 2019 tina.ma
+ *       [MOLY00418383] [Rose][Merlot][Q0][BSP+]The call was auto end when you make a call.(once)
+ *       	
+ *       	power down registration
+ *
+ *       08 29 2017 tina.ma
+ *       [MOLY00274341] [Merge from MP5.TC10]when exit flight mode, if camp on the same cell, report MCC search response eraly
+ *       	
+ *       	merge code from MP5.TC10
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 05 2017 tina.ma
+ *       [MOLY00261277] [MT6763][C2K][MP1][CNOP][Regression]MTC fail after hot swap sim card
+ *       	
+ *       	[MOLY00261009] [JADE][P170519-04144 ]After Poweroff, CTC didn't sent power off registration
+ *       	
+ *       	.
+ *
+ *       02 21 2017 tina.ma
+ *       [MOLY00230424] [Gen93]Stucking to problematic CDMA where strong GSM signal exists
+ *       	
+ *       	.
+ *
+ *       01 05 2017 sue.zhong
+ *       [MOLY00218409] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W1701)
+ *       merge c2k source
+ *
+ *       12 15 2016 sue.zhong
+ *       [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ *       c2k source
+ *
+ *       12 01 2016 sue.zhong
+ *       [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ *       Update C2K source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.3  2004/09/28 16:49:29  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.2  2004/03/25 12:09:42  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.2  2003/08/28 11:20:00  bcolford
+ *       Update for merge.
+ *       Revision 1.6  2003/08/22 16:34:30  mclee
+ *       Fix CR2554 to properly decrement reg zone timers
+ *       Revision 1.5  2002/10/24 13:46:19  akayvan
+ *       Per CRs 1429/1470 added declaration for the function: cpGetTimerRegEnableStatus().
+ *       Revision 1.4  2002/06/06 13:14:32  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.3  2002/02/06 11:45:40  mclee
+ *       Add prototype regAddNamSidNidToList()
+ *       Revision 1.2  2001/11/20 12:33:10  mclee
+ *       Remove ZoneList, SidNidList structures and add regSetTMRegEnabled prototype.
+ *       Revision 1.1  2001/01/17 10:59:19  plabarbe
+ *       Initial revision
+ *       Revision 1.3  2000/12/05 17:45:31  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:27:20  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:26Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:10:21Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:15:48Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.13  2000/01/21 22:07:25  gfrye
+ *       Added parmChangeRegistration to invoke parameter change registration
+ *       when one of the key NAM parameters changes.
+ *
+ *       Revision 1.12  1999/08/31 00:17:05  gfrye
+ *       Added regDelayAfterFail to inhibit further registration attempts after a failure.
+ *
+ *       Revision 1.11  1999/08/18 23:09:41  gfrye
+ *       Added regSetInProgress function to allow other functions to reset the
+ *       _regInProgress flag.
+ *
+ *       Revision 1.10  1999/02/25 19:40:00  mhayduk
+ *       Added new type for roaming status to indicate a value has not
+ *       been set yet.
+ *
+ *       Revision 1.9  1999/02/23 00:24:17  mhayduk
+ *       Renamed Zone and SidNid list element from pcsBlock to block
+ *       so it is more generic.
+ *
+ *       Revision 1.8  1998/11/26 23:13:55  mhayduk
+ *       Removed SystemInfo status reporting.
+ *
+ *       Revision 1.7  1998/09/22 18:44:57  tdaly
+ *       Added IS-95 analog mode support.
+ *
+ *       Revision 1.6  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _REGISTER_H_
+
+  #define _REGISTER_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pch_msg.h"
+#include "Msg_defn.h"
+#include "pswapi.h"
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+  /* registration types - Table 6.7.1.3.2.1-1 */
+  #define CP_REG_TIMER_BASED      0
+  #define CP_REG_POWER_UP         1
+  #define CP_REG_ZONE_BASED       2
+  #define CP_REG_POWER_DOWN       3
+  #define CP_REG_PARAMETER_CHANGE 4
+  #define CP_REG_ORDERED          5
+  #define CP_REG_DISTANCE_BASE    6
+
+  /* Registration states */
+  typedef enum
+  {
+    CP_REG_INIT,
+    CP_REG_IDLE,
+    CP_REG_ACCESS,
+    CP_REG_TRAFFIC
+  } RegState;
+
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+  void regReset(void);
+  void regResetCounterEnabled(void);
+  void regSetState(RegState state);
+  void regSetSidNid(kal_uint16 sid,kal_uint16 Nid);
+
+  void regSetMaxSlotCycleIndex(const kal_uint8 maxIndex);
+
+  /* New function to set the BS longitude and latitude */
+  void regSetLongAndLat(const kal_int32 baseLong,const kal_int32 baseLat );
+
+  /* New function to set the Base Station ID */
+  void regSetBaseId( const kal_uint16 baseId );
+
+  /* New function created for ANSI-41 Systerm Parameters Message
+   to update the Regstration Parameter messages */
+  void regSetRegParsWithA41SPM(const BcchA41SPM *pAnsi41SysPars,const kal_bool call);
+
+  void regSetRegParsWithSysParsMsg(PChSystemParameters *sysPars,kal_bool call);
+  void regSetSlotCycleIndex(kal_uint8 index);
+  void regReceivedNewConfig(void);
+  kal_uint8 regGetSlotCycleIndexSaved(void);
+  kal_uint8 regGetSlotCycleIndex(void);
+  kal_bool regGetMobTerm(void);
+  kal_uint16 regGetBaseId(void);
+  kal_bool regPerformPowerDownReg(void);
+  void regSavePowerDownParameters(void);
+  void regInitializeParameters(kal_bool powerUp);
+  kal_bool regStartInitializationTimer(void);
+  void regClearSidNidList(void);
+  void regClearZoneList(void);
+  void regClearAllLists(void);
+
+  void regTCRegistration(MSRegisteredData *msRegisteredData);
+
+  /* Registration Indications */
+  void regInitializationTimerExpired(void);
+  void regSuperFrameInd(void);
+  void regSuccessfulAccess(kal_bool regTypeMessage, kal_uint8 reason);
+  void regUnsuccessfulAccess(void);
+  void regTCRegisteredMessage(void);  /* need to accept message here */
+  void regSetInProgress(kal_bool inProgress);
+  void regDelayAfterFail(void);
+  void parmChangeRegistration(kal_bool reqRequired);
+  void regSetTMRegEnabled(kal_bool param);
+  kal_bool regGetTMRegEnabled(void);
+  void regAddNamSidNidToList(SidNidList *entry);
+  kal_bool cpGetTimerRegEnableStatus(void);
+  kal_bool regRegistrationThrottling (void);
+  void regRegistrationThrottlingInit(void);
+  void regRegistrationThrottlingTimeout(void);
+  void regSetRegPaused(kal_bool param);
+  kal_bool regGetRegPaused( void);
+  void PswRegResume(void);
+  kal_bool regGetApRegCtr( void);
+  void regSetApRegCtr(kal_bool param);
+  kal_bool regPowerDownSearch(void);
+  kal_bool cpIsInZoneList(kal_uint16 restoreSid, kal_uint16 restoreNid, kal_uint16 restoreRegzone);
+  void regTriggeredInThrottling(void);
+  kal_bool noZoneListMatch(void);
+  void regRejectedHandle(void);
+  void regSetWaitMccMncValRsp(kal_bool param);
+  kal_bool regGetWaitMccMncValRsp( void); 
+  kal_uint16 regGetRegZoneID(void);
+  kal_uint16 regGetSid(void);
+  kal_bool regIsRegisteredIMSI(IMSIType imsi);
+  kal_bool regIsRegisteredUimId(kal_uint32 uimId);
+  void regClearFlag(void);
+  void regResetRejectCount(void);
+#if defined(MTK_DEV_SLT)
+  void sltStartPowerUpRegister (void);
+#endif
+
+#ifdef MTK_DEV_C2K_IRAT
+kal_bool cpIsEnableMobTermMap(void);
+void PswIrat1xRegReqMsg(PswIrat1xRegReqMsgT *MsgP);
+void PswInterRoaming(void);
+
+#endif  /* MTK_DEV_C2K_IRAT */
+
+#endif  /* _REGISTER_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/resource_control.h b/mcu/interface/protocol/as_c2k/1xrtt/resource_control.h
new file mode 100644
index 0000000..0b2878f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/resource_control.h
@@ -0,0 +1,288 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:      resource_control.h  - Resource Control
+ *
+ *
+ * Purpose:     Header file containing definitions to support the Resource
+ *              Control.
+ *            
+ *              Resource Control monitor data in MS and control reverse  SCH
+ *              resources. Whenever the MS data level is above a certain FCH
+ *              threshold level RC will request SCH resources from  "signal-
+ *              ling".
+ *              
+ *              RC will depending on the MUX options negociated between  the
+ *              MS and BS request the SCH resources that will give the fast-
+ *              est transmission with optimal usage of the allocation.
+ *     
+ *              RC will also maintain the RC  Channel Config DB with current
+ *              channel configuration and resources allocated and scheduled.
+ *
+ *
+  ***************************************************************************
+ *
+ *  Revision History:
+ *
+ *  $Revision: 1.4 $
+ *  $Author: blee $
+ *                                                                           
+ *
+ *  $Log: resource_control.h $
+ *
+ *  07 06 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  Correct copyright file header
+ *  Revision 1.4  2005/06/28 16:46:12  blee
+ *  Modified SCRM scheme
+ *  Revision 1.3  2005/03/18 11:45:24  hans
+ *  Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *  Revision 1.2  2004/03/25 12:09:43  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.2  2003/08/28 11:20:01  bcolford
+ *  Update for merge.
+ *  Revision 1.1  2003/05/12 15:39:02  fpeng
+ *  Initial revision
+ *  Revision 1.6  2003/05/08 18:25:20  hans
+ *  CR2096: Duration Unit field is now being set in MS. Cap. DB.
+ *  CR2013: Duration can now be forced to any valid number in MS
+ *  Cap. DB. Ox00 will cause it to be calculated dynamically
+ *  depending on data.  
+ *  Revision 1.5  2003/03/14 13:22:11  hans
+ *  Duration unit changed from 3 bit enum to a UNIT16 to hold 9bit resolution.
+ *  Revision 1.4  2003/02/19 19:20:50  hans
+ *  Resource Control now handle RETRY_DELAY timer received in order msg.
+ *  SR_ID is send correctly to signalling instead of SCH_ID. 
+ *  Fine tuning of handling of infinite duration.
+ *  Revision 1.3  2002/11/26 19:43:08  hans
+ *  Resource control entity initial version for baseline.
+ *  Revision 1.2  2002/11/26 11:36:59  hans
+ *  Initial revision: Rev SCH Resource Control entity added for HSPD
+ *
+  ***************************************************************************
+ ****************************************************************************/
+
+#ifndef _RESOURCE_CONTROL_MSG_H_
+
+ #define _RESOURCE_CONTROL_MSG_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+
+#include "systime.h"
+#include "Ds_Signaling.h"
+
+
+/*****************************************************************************
+ * Global identifiers
+ ****************************************************************************/
+
+#define DURATION_UINT_20MS 0
+
+#define RC_INFINITE_REMAIN_DURATION  0xffff
+#define RC_INFINITE_REMAIN_RESOURCES 0xffffffff
+
+
+typedef enum
+{
+    FCH         = 0x01,
+    DCCH        = 0x02,
+    CONT_PILOT  = 0x04,
+    F_SCH0      = 0x08,
+    R_SCH0      = 0x10
+} ChannelMapT;
+
+typedef enum
+{
+    REV_SCH_0MS = 0,
+    REV_SCH_20MS = 1,
+    REV_SCH_40MS = 2,
+    REV_SCH_60MS = 3,
+    REV_SCH_80MS = 4,
+    REV_SCH_100MS = 5,
+    REV_SCH_120MS = 6,
+    REV_SCH_140MS = 7,
+    REV_SCH_160MS = 8,
+    REV_SCH_320MS = 9,
+    REV_SCH_640MS = 10,
+    REV_SCH_1280MS = 11,
+    REV_SCH_1920MS = 12,
+    REV_SCH_2560MS = 13,
+    REV_SCH_5120MS = 14,
+    REV_SCH_INFINITE = 15   
+} revSchDurationUnitsT;
+
+typedef enum
+{
+    PREFERRED_RATE_9_6    = 0,
+    PREFERRED_RATE_19_2   = 1,
+    PREFERRED_RATE_38_4   = 2,
+    PREFERRED_RATE_76_8   = 3,
+    PREFERRED_RATE_153_6  = 4,
+    PREFERRED_RATE_307_2  = 5,
+    PREFERRED_RATE_614_4  = 6
+} revSchRateSet1T;
+
+typedef enum
+{
+    PREFERRED_RATE_14_4   = 0,
+    PREFERRED_RATE_28_8   = 1,
+    PREFERRED_RATE_57_6   = 2,
+    PREFERRED_RATE_115_2  = 3,
+    PREFERRED_RATE_230_4  = 4,
+    PREFERRED_RATE_259_2  = 5,
+    PREFERRED_RATE_460_8  = 6,
+    PREFERRED_RATE_518_4  = 7
+} revSchRateSet2T;
+
+typedef enum
+{
+    REV_SCH_ID_1 = 0,
+    REV_SCH_ID_2 = 1  
+} RevSchIdT;
+
+typedef enum
+{
+    RC_NULL_STATE = 0,
+    RC_ACTIVE_STATE
+} RcStateT;  
+
+typedef enum
+{
+    RC_WAIT_FOR_EVENT = 0,
+    RC_WAIT_FOR_ASSIGNMENT
+} RcSubStateT;  
+
+typedef enum
+{
+    RC_BUFFER_STATUS_EVENT = 0,
+    RC_SCH_ASSIGNMENT_EVENT,
+    RC_SCH_DEALLOCATION_EVENT,
+    RC_TIMER_EVENT
+} RcEventT; 
+
+typedef struct
+{
+    RcEventT RcEvent;
+    void *DataPtr;
+} RcDataBufferStatusMsgT;  
+
+
+typedef enum
+{
+    RC_RSR_ALLOCATE_TYPE = 0,
+    RC_RSR_DEALLOCATE_BTS_TYPE,      /* deallocation by BTS (through ESCAM or UHDM) */
+    RC_RSR_DEALLOCATE_NORMAL_TYPE,   /* deallocation due to normal end of burst     */
+    RC_RSR_DEALLOCATE_EARLY_TYPE,    /* deallocation due to early termination (e.g DTX ot T_ADD Abort) */
+    RC_RETRY_DELAY_TYPE
+} RevSchUpdTypeT;
+
+
+typedef struct
+{
+  ChannelMapT     Channel;            /* Indicator for channel map */
+  kal_uint8                NumRevSch;      /* Number of SCH assigned    */
+                                                   /* if supporting more than one Sch Id make this a array of struct  */
+  RevSchIdT         RevSchId;         /* Reverse SCH ID            */
+  RevSchUpdTypeT        RevSchUpdType;
+  revSchDurationUnitsT              DurationUnits;  /* number of duration units  */
+  kal_uint8                         Rate;           /* Granted Rev SCH rate      */ 
+  WbiosSystime          ActionTime;     /* Reverse SCH start time    */
+                                                      /* RevSchUpdType: RC_RETRY_DELAY_TYPE, retry order delay Type      */
+    kal_uint32                 RetryDelayOrder;/* Retry Delay Order, in ms  */
+                                                       /* and 0 for clear counter   */ 
+} RcSchUpdInfoT;  
+
+typedef struct
+{
+    revSchDurationUnitsT remainDurationUnits; 
+} RcSchDeallocInfoT;  
+
+
+
+typedef struct
+{
+  Ds_ChanBitmapType     Channel;        /* Indicator for channel map */
+  kal_uint8                 NumRevSch;      /* Number of SCH assigned    */
+  RevSchIdT             RevSchId;       /* Reverse SCH ID            */
+  kal_uint16                Duration;       /* number of duration units  */
+  kal_uint8                 PreferredRate;  /* Preferred Rev SCH rate    */ 
+} RcReqMsgT;  
+
+typedef struct
+{
+    ChannelMapT           Channel;        /* Indicator for channel map */
+} RcRelMsgT;  
+
+typedef enum
+{
+    RC_PROCESS_TX_REQUEST = 0,
+    RC_PSW_TASK,
+    RC_PSW_DATA_BUFFER_STATUS_MSG,
+    RC_ENG_RELAY_DATA_BUFFER_STATUS,
+    RC_RESOURCE_CONTROL,
+    RC_INVALID_ASSIGNMENT_RECEIVED,
+    RC_INVALID_SUBSTATE,
+    RC_FAILED_TO_REMOVE_ENTRY,
+    RC_INVALID_STATE
+} rcDebugT;
+
+extern const kal_uint16 rev_sch_duration_table[REV_SCH_INFINITE + 1];
+
+/*****************************************************************************
+ * Resource Control function prototypes
+ ****************************************************************************/
+void rcInitialize(void);
+void resourceControl(RcDataBufferStatusMsgT *msgPtr);
+void rcRetryDelayTimerExpired(void);
+void rcRsrAllocUpd(RcSchUpdInfoT *rcAllocInfoPtr);
+void rcRSchRelInd(kal_uint16 remain_duration);
+
+RcStateT getRcState(void);
+kal_bool validateRSCHParams(const Ds_RevSch* pRevSchParams);
+
+#endif  /* _RESOURCE_CONTROL_MSG_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/scc_prot.h b/mcu/interface/protocol/as_c2k/1xrtt/scc_prot.h
new file mode 100644
index 0000000..142e168
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/scc_prot.h
@@ -0,0 +1,195 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:       scc_prot.h
+ * Project:         SCC
+ * Original Author: BJC
+ * Creation Date:   Jan. 31, 2000
+ *
+ * Description:  Service Option Control Order/Message definitions.
+ *
+ * Restrictions: 
+ *
+ * Dependencies: 
+ *
+ *************************************************************************
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation.
+ * 340, 525 - 28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+ *
+ *************************************************************************
+ * RCS Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SCC_PROT_H
+#define _SCC_PROT_H
+
+/* -------- Data and Packet Service Option Control Field Types ------------ */
+#define SOC_FIELD_TYPE_MASK 0x07
+#define SOC_RATE_CNTL       0x00
+#define SOC_ZREG_CNTL       0x01
+#define SOC_HHO_CNTL        0x02
+#define SOC_DORM_CNTL       0x03
+#define SOC_PKT_CON_CNTL    0x04
+
+#define SOC_PKT_CON_RSP     0x04
+
+/* ------------------ Rate Control Field Definitions ----------------------*/
+#define SOC_RATE_REDUC_POS     5
+#define SOC_RATE_REDUC_MASK 0x07
+#define SOC_RATE_REDUC_MIN     0
+#define SOC_RATE_REDUC_MAX     8
+
+#define SOC_RATE_REDUC_1       0
+#define SOC_RATE_REDUC_3_4     1
+#define SOC_RATE_REDUC_1_2     2
+#define SOC_RATE_REDUC_1_4     3
+#define SOC_RATE_REDUC_0       4
+
+/* -------------- Zone Registration Control Field Definitions ------------- */
+#define SOC_ZREG_POS           5
+#define SOC_ZREG_MASK       0x07
+#define SOC_ZREG_MIN           0
+#define SOC_ZREG_MAX           2
+
+#define SOC_ZREG_DIS_ALL          0
+#define SOC_ZREG_ENA_REGISTRATION 1
+#define SOC_ZREG_ENA_RECONNECTION 2
+
+/* -------- Reconnect After Hard Handoff Control Field Definitions --------- */
+#define SOC_HHO_POS            5
+#define SOC_HHO_MASK        0x07
+#define SOC_HHO_MIN            0
+#define SOC_HHO_MAX            1
+
+#define SOC_HHO_DIS            0
+#define SOC_HHO_ENA            1
+
+/* --------------- Dormant Timer Control Field Definitions ----------------- */
+#define SOC_DORM_POS            5
+#define SOC_DORM_MASK        0x07
+#define SOC_DORM_MIN            0
+#define SOC_DORM_MAX            1
+
+#define SOC_DORM_DIS            0
+#define SOC_DORM_ENA            1
+
+/* --------- Packet Zone Reconnection Control Field Definitions ------------ */
+#define SOC_PKT_CON_POS         5
+#define SOC_PKT_CON_MASK     0x07
+#define SOC_PKT_CON_MIN         0
+#define SOC_PKT_CON_MAX         3
+
+#define SOC_PKT_CON_DIS           0
+#define SOC_PKT_CON_ENA           1
+#define SOC_PKT_CON_CLEAR_LIST    2
+#define SOC_PKT_CON_TRANSFER_LIST 3
+
+#define SOC_PKT_CON_LIST_LEN_MASK 0x0F
+#define SOC_PKT_CON_LIST_LEN_POS     0
+#define SOC_PKT_CON_LIST_LEN_MIN     0
+#define SOC_PKT_CON_LIST_LEN_MAX    15
+
+/* --------- Packet Zone Connection Response Message Fields ---------------- */
+#define SOC_PKT_RSP_POS         5
+#define SOC_PKT_RSP_MASK     0x07
+
+#define SOC_PKT_RSP_HEADER_LEN  2
+#define SOC_PKT_RSP             0
+
+
+/* ----------------- Vocoder Control Field Definitions --------------------- */
+#define SOC_VOCODER_MOB_TO_MOB_BIT BIT1
+#define SOC_VOCODER_INIT_BIT       BIT0
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint8 id;
+  kal_bool new;
+  kal_uint32 time;
+} PACKED_POSTFIX  PZone;
+
+#endif /* _SCC_PROT_H */
+/**Log information: \main\CBP80\cbp80_gdeng_scbp10322\1 2012-09-14 06:09:34 GMT gdeng
+** SCBP#10322**/
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/sms_data.h b/mcu/interface/protocol/as_c2k/1xrtt/sms_data.h
new file mode 100644
index 0000000..a7fb7a9
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/sms_data.h
@@ -0,0 +1,382 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:	  sms_data.h
+ * Project:	  SMS
+ * Original Author:  Dan Doucette
+ * Creation Date:    Jan 24, 2000
+ *
+ * Description:	     Definition of all SMS specific types
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SMS_DATA_H
+#define _SMS_DATA_H	1
+
+#include "sysdefs.h"
+#include "sms_prot.h"
+#include "pswsmstune.h"
+
+#define SMS_CAUSE_CODE_MO_ARRAY 0
+#define SMS_CAUSE_CODE_MT_ARRAY 1
+
+/*
+ *    SMS Teleservice Id
+ */
+typedef kal_uint16 SMS_TELESERVICE_ID;
+
+/*
+ *    SMS_CAUSE_CODE: Type of error (IS-41C defined)
+ */
+typedef struct 
+{
+    SMS_ERROR errorClass;
+    SMS_CODE causeCode;
+} SMS_CAUSE_CODE;
+
+
+/*
+ *    SMS_MSG_ID: Identifier of a Tele-service message
+ */
+typedef kal_uint16 SMS_MSG_ID;
+
+/*
+ *    SMS Address
+ */
+typedef struct 
+{
+    kal_bool digitMode;
+    kal_bool numberMode;
+    kal_uint8 numberType;
+    kal_uint8 numberPlan;
+    kal_uint8 numFields;
+    kal_uint8 chari[SMS_MAX_ADDRESS_CHARS]; /* 4 or 8-bit value */
+} SMS_ADDR;
+
+/*
+ *    SMS Sub-Address
+ */
+typedef struct 
+{
+    kal_uint8 type;
+    kal_bool odd;
+    kal_uint8 numFields;
+    kal_uint8 chari[SMS_MAX_SUBADDRESS_CHARS];
+} SMS_SUBADDR;
+
+/*
+ *    SMS Absolute Time
+ */
+typedef struct {
+    kal_uint8 year;
+    kal_uint8 month;
+    kal_uint8 day;
+    kal_uint8 hours;
+    kal_uint8 minutes;
+    kal_uint8 seconds;
+} SMS_ABSTIME;
+
+/*
+ *    SMS User Data 
+ */
+typedef struct
+{
+   kal_uint8 msgEncoding;
+   kal_uint8 numFields;
+   kal_uint8 chari[SMS_MAX_USERDATA_LENGTH];
+} SMS_MSG;
+
+typedef struct
+{
+   kal_uint8 messageType;
+   kal_uint8 numMsgs;
+   SMS_MSG msgs[SMS_MAX_NUM_DATA_MSGS];
+} SMS_USERDATA;
+  
+typedef kal_uint8 SMS_USER_RESP_CODE;
+
+typedef struct
+{
+   kal_bool userAck;
+   kal_bool deliverAck;
+   kal_bool readAck;
+} SMS_REPLY_OPT;
+
+typedef struct
+{
+  kal_uint8 ErrorClass;
+  kal_uint8 MsgStatusCode;
+} SMS_MSG_STATUS;
+
+/* Information to provide to MMI whenever SMS Ack is received.            */
+typedef struct
+{
+   kal_uint8 replySeq;
+   kal_uint8 errorClass;
+   kal_uint8 causeCode;
+} SMS_CAUSE_INFO;
+
+typedef enum
+{
+/* ref ValSmsDisplayModeT in valsmsapi.h */
+  SMS_DISP_MODE_IMMEDIATE = 0,
+  SMS_DISP_MODE_DEFAULT,
+  SMS_DISP_MODE_USER_INVOKE,
+  SMS_DISP_MODE_RESERVED,
+  SMS_MAX_DISP_MODE
+} SMS_DISP_MODE;
+
+ typedef struct
+ {
+    SMS_DISP_MODE dispMode;
+    kal_uint8 reserved;
+ }SmsDispModeT; 
+ 
+#ifdef KDDI_EXTENSIONS
+typedef struct
+{
+   kal_uint32 IpAddress;
+   kal_uint8   CtlFlag;
+}SMS_IPADDRESS;
+#endif 
+/*
+ *    SMS Relative Time
+ */
+typedef kal_uint8 SMS_RELTIME;
+
+/* Same as Message Center Address except NUMBER_MODE is 0 (T1.607). */
+typedef SMS_ADDR SMS_CALLBACK_NUMBER;
+
+/* Message Deposit Index new 637B subparameter */
+typedef kal_uint16 SMS_MSG_DEP_INDEX;
+
+/* Service Category Program Results */
+typedef struct
+{
+   kal_uint16 category;
+   kal_uint8  categoryResult;
+   kal_uint8  language;
+} SMS_CAT;
+typedef struct
+{
+   kal_uint8 numCat;
+   SMS_CAT cat[SMS_MAX_NUM_SERVICE_CATEGORIES];
+}SMS_SRV_CAT_PROG_RESULT;
+
+/* CALLBACK_ARGS - parameters used by callback functions (see CALLBACK_STRUCT */
+/*                 below */
+/* kmar: ARG handling different for broadcast than regular SMS, so need to    */
+/*       keep ARG separate from CALLBACK_STRUCT (unless redesign).            */
+typedef struct
+{
+   kal_uint16 TeleSrvId;
+   kal_uint32 DeliverMsgId;
+   kal_uint32 ErrorMsgId;
+} SMS_ASE_CALLBACK_ARGS;
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+typedef struct
+{
+   kal_uint8   msgType;
+   kal_uint8   subMsgType;
+   kal_uint8   mode;
+   kal_bool    DecryptResult;
+   kal_bool    SignatureVerifyResult;
+   kal_uint8   RandomVerifyResult; 
+   kal_bool    IsKmcVerCrt;
+   kal_uint8   callLen;
+   kal_uint8   callNum[30];
+   kal_uint8   timeStmp[7];
+   kal_uint8   cause;
+   kal_bool    msgCheckResult;
+}SMS_CRYPT_ASE;
+#endif
+
+
+/* SMS Callback functions - functions that will be called when events arrive */
+typedef SMS_CAUSE_CODE (*SMS_ASE_DELIVER_IND) (SMS_ASE_CALLBACK_ARGS *parm,
+    SMS_ADDR *addr, SMS_MSG_ID id, SMS_MSG_TYPE type, kal_bool *headerInd, 
+    SMS_SUBADDR *subaddr, SMS_SVC_CAT *cat, SMS_USERDATA *data, SMS_USER_RESP_CODE *code,
+    SMS_ABSTIME *timestamp, SMS_ABSTIME *vpa, SMS_RELTIME *vpr,
+    SMS_ABSTIME *ddta, SMS_RELTIME *ddtr, SMS_PRIORITY *priority,
+    SMS_PRIVACY *prv, SMS_REPLY_OPT *ReplyOpt, kal_uint8 *numMsgs, 
+    SMS_ALERT *alert,SMS_LANG *lang, SMS_CALLBACK_NUMBER *cbNumber, 
+    SmsDispModeT *mode,
+    kal_uint16 *msgDepIndex, SMS_SRV_CAT_DATA *srvCatData,
+    SMS_MSG_STATUS *status,
+#ifdef KDDI_EXTENSIONS      
+    SMS_IPADDRESS* msgIpAddr, kal_uint8* NotifyFlag, kal_uint32* UimId,  
+#endif
+    kal_uint8* replySeq,    
+    kal_uint16 SeqNum
+#ifdef MTK_CBP_ENCRYPT_VOICE
+    ,SMS_CRYPT_ASE* smsCryptAse
+#endif
+    );    
+
+typedef void (*SMS_ASE_ERROR)(void *parm, kal_uint16 seqNum, SMS_CAUSE_CODE error);
+
+
+/* CALLBACK_STRUCT - the functions to call for events */
+typedef struct 
+{
+   SMS_ASE_DELIVER_IND deliver;
+   SMS_ASE_ERROR err;
+} SMS_ASE_CALLBACK_STRUCT;
+
+/* Application Service Element */
+typedef struct 
+{
+  SMS_TELESERVICE_ID teleserviceId;
+  kal_uint16 seqNum;
+  SMS_ASE_CALLBACK_STRUCT cb;
+  SMS_ASE_CALLBACK_ARGS cbargs;
+  SMS_ADDR addr;
+  SMS_SUBADDR subAddr;
+  kal_bool busy;
+} SMS_ASE;
+
+/* Error Values */
+#define SMS_ASE_BAD_MSG_PARM                    0
+#define SMS_ASE_BAD_MSG_TYPE                    1
+#define SMS_ASE_PARAMETER_LENGTH_MISMATCH       2
+#define SMS_TL_DATA_TOO_LARGE                   3
+#define SMS_TL_PARAMETER_LENGTH_MISMATCH        4
+#define SMS_ASE_USER_DATA_TOO_LARGE             5
+#define SMS_ASE_CAT_DATA_TOO_LARGE              6
+#define SMS_ASE_MSG_ENCODING_NOT_RECOGNIZED     7
+#define SMS_ASE_ME_MSG_ENCODING_NOT_RECOGNIZED  8
+
+#ifdef MTK_CBP
+typedef struct
+{
+    kal_uint8   RetryPeriod;
+    kal_uint8   RetryInterval;
+    kal_bool    SendOnAcc;
+    kal_uint8   PrefSO;
+}PswSmsCapT;
+#endif
+
+#endif /* _SMS_DATA_H */
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/sms_prot.h b/mcu/interface/protocol/as_c2k/1xrtt/sms_prot.h
new file mode 100644
index 0000000..123705f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/sms_prot.h
@@ -0,0 +1,502 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*************************************************************************
+ *
+ * File Name:	  sms_prot.h
+ * Project:	  SMS
+ * Original Author:  Dan Doucette
+ * Creation Date:    Feb 2, 2000
+ *
+ * Description:	     Definition of SMS protocol specific constants
+ *		     and parameter types
+ *
+ * Restrictions:
+ *
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Corporation.  Unauthorized
+ * use is prohibited.
+ *
+ * ISOTEL Corporation
+ * 340, 525-28 Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041   Fax: (403)274-3598
+ *
+ *
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SMS_PROT_H
+#define _SMS_PROT_H	1
+
+#include  "pswsmstune.h"
+
+/*
+ *    SMS Teleservice Message Types
+ */
+enum teleservice_msg
+{
+   SMS_RSVD,
+   SMS_DELIVER,
+   SMS_SUBMIT,
+   SMS_CANCEL,
+   SMS_DELIVER_ACK,
+   SMS_USER_ACK,
+   SMS_READ_ACK
+};
+typedef kal_uint8 SMS_MSG_TYPE;
+
+/*
+ *    SMS Transport Layer Message Types
+ */
+enum transport_msg
+{
+   SMS_PTP,
+   SMS_BROADCAST,
+   SMS_ACK
+};
+typedef enum transport_msg SMS_TL_MSG_TYPE;
+
+/*
+ *    SMS Error Values
+ */
+enum sms_errors
+{
+   SMS_ERROR_NO_ERROR,
+   SMS_ERROR_RSVD,
+   SMS_ERROR_TEMP,
+   SMS_ERROR_PERM
+};
+typedef enum sms_errors SMS_ERROR;
+
+/*
+ *    SMS Alert Values
+ */
+enum alert
+{
+   SMS_MOBILE_DEFAULT,
+   SMS_LOW_PRIORITY,
+   SMS_MEDIUM_PRIORITY,
+   SMS_HIGH_PRIORITY
+};
+typedef enum alert SMS_ALERT;
+
+/*
+ *    SMS Priority Values
+ */
+enum priority
+{
+   SMS_NORMAL,
+   SMS_INTERACTIVE,
+   SMS_URGENT,
+   SMS_EMERGENCY
+};
+typedef enum priority SMS_PRIORITY;
+
+/*
+ *    SMS Language Values
+ */
+enum lang
+{
+   SMS_UNKNOWN,
+   SMS_ENGLISH,
+   SMS_FRENCH,
+   SMS_SPANISH,
+   SMS_JAPANESE,
+   SMS_KOREAN,
+   SMS_CHINESE,
+   SMS_HEBREW
+};
+typedef enum lang SMS_LANG;
+
+/*
+ *    SMS Privacy Values
+ */
+enum privacy 
+{
+   SMS_NOT_RESTRICTED,
+   SMS_RESTRICTED,
+   SMS_CONFIDENTIAL,
+   SMS_SECRET
+};
+typedef enum privacy SMS_PRIVACY;
+
+/*
+ *    SMS Cause Codes
+ */
+/* 
+TIA/EIA-41-D SMS_CauseCode :
+0         Address vacant
+1	        Address translation failure
+2	        Network resource shortage
+3	        Network failure
+4	        Invalid Teleservice ID
+5~31 	    Other network problem
+32 	      No page response
+33 	      Destination busy
+34 	      No acknowledgment
+35 	      Destination resource shortage
+36,48~63  SMS delivery postponed
+37 	      Destination out of service
+38 	      Destination no longer at this address
+39~47 	  Other terminal problem
+64 	      Radio interface resource shortage
+65 	      Radio interface incompatibility
+66~95 	  Other radio interface problem
+96 	      Encoding problem
+97 	      SMS origination denied
+98 	      SMS termination denied
+99 	      Supplementary service not supported
+100 	    SMS not supported
+101 	    Reserved
+102 	    Missing expected parameter
+103 	    Missing mandatory parameter
+104 	    Unrecognized parameter value
+105 	    Unexpected parameter value
+106 	    User Data size error
+107~255 	Other general problems
+*/
+enum cause_code
+{
+   /* Network Errors */
+   SMS_CC_ADDR_VACANT,
+   SMS_CC_ADDR_TRANSLATION_FAIL,
+   SMS_CC_NETWORK_RESOURCE_SHORTAGE,
+   SMS_CC_NETWORK_FAIL,
+   SMS_CC_INVALID_TELESERVICE_ID,
+   SMS_CC_OTHER_NETWORK_ERROR,
+   
+   /* Terminal Errors */ 
+   SMS_CC_NO_PAGE_RESP=32,
+   SMS_CC_DESTINATION_BUSY,
+   SMS_CC_NO_ACK,
+   SMS_CC_DESTINATION_RESOURCE_SHORTAGE,
+   SMS_CC_DELIVERY_POSTPONED,
+   SMS_CC_DESTINATION_OUT_OF_SERVICE,
+   SMS_CC_DESTINATION_ADDR_CHANGE,
+   SMS_CC_OTHER_TERMINAL_ERROR,
+
+   /* Radio Interface Errors */
+   SMS_CC_RADIO_RESOURCE_SHORTAGE=64,
+   SMS_CC_RADIO_INCOMPATIBLE,
+   SMS_CC_OTHER_RADIO_ERROR,
+
+   /* General Problems */
+   SMS_CC_ENCODING_PROBLEM=96,
+   SMS_CC_ORIGINATION_DENIED,
+   SMS_CC_TERMINATION_DENIED,
+   SMS_CC_SUPPL_SERV_NOT_SUPPORTED,
+   SMS_CC_SMS_NOT_SUPPORTED,
+   SMS_CC_RESERVED,
+   SMS_CC_MISSING_EXPECTED_PARM = 102,
+   SMS_CC_MISSING_MANDATORY_PARM,
+   SMS_CC_UNRECOGNIZED_PARM_VALUE,
+   SMS_CC_UNEXPECTED_PARM_VALUE,
+   SMS_CC_USER_DATA_SIZE_ERROR,
+   SMS_CC_CARD_STATUS_ERROR,
+   SMS_CC_OTHER_GENERAL_PROBLEM
+};
+typedef enum cause_code SMS_CODE;
+
+/*
+ *    Service Category Program Data
+ */
+
+typedef struct
+{
+   kal_uint8  OperationCode;
+   kal_uint16 SrvCat;
+   kal_uint8  Lang;
+   kal_uint8  MaxMsg;
+   kal_uint8  Alert;
+   kal_uint8  NumChar;
+   kal_uint8  Char[ SMS_MAX_CHAR_CATEGORY ];
+}SMS_SER_CAT_RECORD;
+
+typedef struct
+{
+   kal_uint8 MsgEncoding;
+   kal_uint8 NumCat;
+   SMS_SER_CAT_RECORD cat[ SMS_MAX_NUM_SERVICE_CATEGORIES ];
+} SMS_SRV_CAT_DATA;
+
+/*
+ *    SMS Teleservice Identifiers
+ */
+
+/* 
+TIA/EIA-41-D Teleservice Identifier :
+IS-91 Extended Protocol Enhanced Services
+Wireless Paging Teleservice
+Wireless Messaging Teleservice
+Voice Mail Notification
+Wireless Application Protocol
+Card Application Toolkit Protocol Teleservice
+*/
+enum sms_teleservices
+{
+   SMS_AMPS_EXT_PROTO_ENHANCED_SERVICES=4096,
+   SMS_CDMA_PAGING_TELESERVICE,
+   SMS_CDMA_MESSAGING_TELESERVICE,
+   SMS_CDMA_VOICE_MAIL_NOTIFICATION,
+/*If defined VZW*/
+   SMS_IMS_SERVICES_TELESERVICE = 4242
+};
+typedef enum sms_teleservices SMS_TELESERVICES;
+
+/*
+ *    IS-91 Message Type field values
+ */
+enum sms_mst
+{
+   SMS_VOICEMAIL_STATUS=0x82,
+   SMS_SHORT_MESSAGE_FULL,
+   SMS_CLI_ORDER,
+   SMS_SHORT_MESSAGE
+};
+typedef enum sms_mst SMS_MST_VALUE;
+
+/*
+ *    Service Categories as defined in IS-637 SMS
+ */
+enum service_categories
+{
+   SMS_CAT_UNKNOWN,
+   SMS_CAT_EMERGENCIES,
+   SMS_CAT_ADMINISTRATIVE,
+   SMS_CAT_MAINTENANCE,
+   SMS_CAT_GEN_NEWS_LOCAL,
+   SMS_CAT_GEN_NEWS_REGIONAL,
+   SMS_CAT_GEN_NEWS_NATIONAL,
+   SMS_CAT_GEN_NEWS_INTERNATIONAL,
+   SMS_CAT_FINANCE_NEWS_LOCAL,
+   SMS_CAT_FINANCE_NEWS_REGIONAL,
+   SMS_CAT_FINANCE_NEWS_NATIONAL,
+   SMS_CAT_FINANCE_NEWS_INTERNATIONAL,
+   SMS_CAT_SPORTS_NEWS_LOCAL,
+   SMS_CAT_SPORTS_NEWS_REGIONAL,
+   SMS_CAT_SPORTS_NEWS_NATIONAL,
+   SMS_CAT_SPORTS_NEWS_INTERNATIONAL,
+   SMS_CAT_ENTERTAINMENT_NEWS_LOCAL,
+   SMS_CAT_ENTERTAINMENT_NEWS_REGIONAL,
+   SMS_CAT_ENTERTAINMENT_NEWS_NATIONAL,
+   SMS_CAT_ENTERTAINMENT_NEWS_INTERNATIONAL,
+   SMS_CAT_LOCAL_WEATHER,
+   SMS_CAT_TRAFFIC,
+   SMS_CAT_FLIGHT_SCHEDULE,
+   SMS_CAT_RESTAURANTS,
+   SMS_CAT_LODGINGS,
+   SMS_CAT_RETAIL_DIRECTORY,
+   SMS_CAT_ADVERTISEMENT,
+   SMS_CAT_STOCK_QUOTES,
+   SMS_CAT_EMPLOYMENT_OPPORTUNITIES,
+   SMS_CAT_MEDICAL_HEALTH,
+   SMS_CAT_TECH_NEWS,
+   SMS_CAT_MULTI_CATEGORY,
+#if defined(LGT_EXTENSIONS)
+   SMS_CAT_LGT_PUBLIC_CHANNEL  = 0x2BE,
+#endif
+   SMS_CAT_CMAS_PRESIDENT_ALERT = 0X1000,  /* 3GPP2 C.R1001-G SPEC */
+   SMS_CAT_CMAS_EXTREME_THREAT_TO_LIFE,
+   SMS_CAT_CMAS_SEVERE_THREAT_TO_LIFE,
+   SMS_CAT_CMAS_CHILD_ABDUCTION_EMERGNY,
+   SMS_CAT_CMAS_TEST_MESSAGE,
+   SMS_CAT_CMAS_RESERVED_MAX =0X10FF
+};
+typedef enum service_categories SMS_SVC_CAT;
+
+/*
+ *    Transport Layer Message Field Parameter Ids
+ */
+#define SMS_TL_TELESERVICE_ID	    0
+#define SMS_TL_SERVICE_CAT	    1
+#define SMS_TL_ORIG_ADDR	    2
+#define SMS_TL_ORIG_SUBADDR	    3
+#define SMS_TL_DEST_ADDR	    4
+#define SMS_TL_DEST_SUBADDR	    5
+#define SMS_TL_BEARER_RPLY_OPT	    6
+#define SMS_TL_CAUSE_CODE	    7
+#define SMS_TL_BEARER_DATA          8
+
+/*
+ *    Transport Layer Bit Mask Values
+ */
+#define SMS_TL_TELESERVICE_ID_PRESENT	   (1<<0)
+#define SMS_TL_SERVICE_CAT_PRESENT	   (1<<1)
+#define SMS_TL_ORIG_ADDR_PRESENT	   (1<<2)
+#define SMS_TL_ORIG_SUBADDR_PRESENT	   (1<<3)
+#define SMS_TL_DEST_ADDR_PRESENT	   (1<<4)
+#define SMS_TL_DEST_SUBADDR_PRESENT	   (1<<5)
+#define SMS_TL_BEARER_RPLY_OPT_PRESENT	   (1<<6)
+#define SMS_TL_CAUSE_CODE_PRESENT	   (1<<7)
+#define SMS_TL_BEARER_DATA_PRESENT	   (1<<8)
+
+/*
+ *    Teleservice Layer Parameter Values
+ */
+#define SMS_ASE_MESSAGE_ID	    0
+#define SMS_ASE_USER_DATA	    1
+#define SMS_ASE_USER_RESP_CODE      2
+#define SMS_ASE_TIMESTAMP	    3 
+#define SMS_ASE_VPA		    4
+#define SMS_ASE_VPR		    5
+#define SMS_ASE_DDTA		    6
+#define SMS_ASE_DDTR		    7
+#define SMS_ASE_PRIORITY	    8
+#define SMS_ASE_PRIVACY		    9
+#define SMS_ASE_RPLY_OPT	    10
+#define SMS_ASE_MSGNUM		    11
+#define SMS_ASE_ALERT		    12
+#define SMS_ASE_LANG		    13
+#define SMS_ASE_CALLBACK	    14
+#define SMS_ASE_DISPMODE	    15
+#define SMS_ASE_MENC_DATA	    16
+#define SMS_ASE_MSG_DEP_INDEX  17
+#define SMS_ASE_SRV_CAT_DATA   18
+#define SMS_ASE_SRV_CAT_RESULT 19
+#define SMS_ASE_MSG_STATUS     20
+#ifdef KDDI_EXTENSIONS
+#define SMS_ASE_IP_ADDRESS     85
+#define SMS_ASE_NOTIFY_FLAG   86
+#define SMS_ASE_UIM_ID             87
+#endif
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+#define SMS_MSG_TYPE_CALL_KEY_REQ	        0
+#define SMS_MSG_TYPE_CALL_KEY_RSP	        1
+#define SMS_MSG_TYPE_CALLED_ENCRYPT_IND	    2
+#define SMS_MSG_TYPE_CALLED_KRY_REQ	        3
+#define SMS_MSG_TYPE_CALLED_KRY_RSP	        4
+#define SMS_MSG_TYPE_ERROR_IND	            5
+#define SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE	 6
+#define SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_RSP	7
+#define SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_CNF	8
+#define SMS_MSG_TYPE_REMOTE_CONTROL_INS	9
+#define SMS_MSG_TYPE_REMOTE_CONTROL_INS_RSP	10
+#endif
+
+
+/*
+ *    Teleservice Bit Mask Values
+ */
+#define SMS_ASE_MESSAGE_ID_PRESENT	    (1<<0)
+#define SMS_ASE_USER_DATA_PRESENT	    (1<<1)
+#define SMS_ASE_USER_RESP_CODE_PRESENT      (1<<2)
+#define SMS_ASE_TIMESTAMP_PRESENT	    (1<<3)
+#define SMS_ASE_VPA_PRESENT		    (1<<4)
+#define SMS_ASE_VPR_PRESENT		    (1<<5)
+#define SMS_ASE_DDTA_PRESENT		    (1<<6)
+#define SMS_ASE_DDTR_PRESENT		    (1<<7)
+#define SMS_ASE_PRIORITY_PRESENT	    (1<<8)
+#define SMS_ASE_PRIVACY_PRESENT		    (1<<9)
+#define SMS_ASE_RPLY_OPT_PRESENT	    (1<<10)
+#define SMS_ASE_MSGNUM_PRESENT		    (1<<11)
+#define SMS_ASE_ALERT_PRESENT		    (1<<12)
+#define SMS_ASE_LANG_PRESENT		    (1<<13)
+#define SMS_ASE_CALLBACK_PRESENT	    (1<<14)
+#define SMS_ASE_DISPMODE_PRESENT	    (1<<15)
+#define SMS_ASE_MENC_DATA_PRESENT	    (1<<16)
+#define SMS_ASE_MSG_DEP_INDEX_PRESENT (1<<17)
+#define SMS_ASE_SRV_CAT_DATA_PRESENT  (1<<18)
+#define SMS_ASE_SRV_CAT_RESULTS_PRESENT (1<<19)
+#define SMS_ASE_MSG_STATUS_PRESENT    (1<<20)
+#ifdef KDDI_EXTENSIONS
+#define SMS_ASE_IP_ADDRESS_PRESENT     (1<<21)
+#define SMS_ASE_NOTIFY_FLAG_PRESENT     (1<<22)
+#define SMS_ASE_UIM_ID_PRESENT     (1<<23)
+#endif
+#ifdef MTK_CBP_ENCRYPT_VOICE
+#define SMS_ASE_SMS_CRYPT_ASE_PRESENT (1<<24)
+#endif
+
+#endif
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/srbp_access.h b/mcu/interface/protocol/as_c2k/1xrtt/srbp_access.h
new file mode 100644
index 0000000..b8ce455
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/srbp_access.h
@@ -0,0 +1,329 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     srbp_access.h - Access Procedure
+ *
+ * Purpose:    Header file containing structures for Access attempts
+ *             on the ACH/EACH Channel.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *    $Author: dstecker $
+ *
+ *       $Log: srbp_access.h $
+ *
+ *       10 26 2017 tina.ma
+ *       [MOLY00285322] [Bianco][O1][SRLTE][CT 6M C][LTE IOT][FT][SH][HW][TC-4GFT-07008]MT Failed 4 times
+ *       	
+ *       	.
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       06 12 2017 gavin.zhang
+ *       [MOLY00255976] [BIANCO][MT6763][RDIT][FT][C2K][SRLTE+W][Gemini_Case][SH][Stability][CAT][SIM1:CT][SIM2:CU][ENABLE_IMS]md1:(USIP2_USIP1) [ASSERT] file:md32/usip/fec/modem/c2k/tx/src/c2k_tx_framework.c line:4672
+ *       	
+ *       	.
+ *
+ *       01 22 2017 lily.ruan
+ *       [MOLY00225859] [6293][C2K]Merge CL from T0 branch to Trunk branch.
+ *       	
+ *       	merge access delay feature
+ *       Revision 1.6  2005/04/06 16:38:17  dstecker
+ *       srbp_access.c,  Revision 1.10 
+ *       Revision 1.5  2005/03/18 11:45:43  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.4  2005/02/03 13:42:06  dstecker
+ *       Added delaySlots to EnhAccessMsgInfo
+ *       Revision 1.3  2004/04/06 14:02:22  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:44  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:05  fpeng
+ *       Initial revision
+ *       Revision 1.14  2002/12/27 14:23:55  dstecker
+ *       Added prototype
+ *       Revision 1.13  2002/12/27 13:28:55  dstecker
+ *       Corrected link problems
+ *       Revision 1.12  2002/12/26 16:14:48  dstecker
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0 
+ *       Revision 1.11  2002/07/17 09:17:36  mclee
+ *       Add prototype srbpDisableAccessAuthParms()
+ *       Revision 1.10  2002/06/27 17:58:46  dstecker
+ *       Changed the resolution of access probe power correction to be in units of half Db instead of full dB
+ *       Revision 1.9  2002/06/14 17:17:26  chinh
+ *       Added function prototype srbpL1dAccessComplete().
+ *       Revision 1.8  2002/06/06 13:14:47  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.7  2002/05/21 10:46:32  bsharma
+ *       Added Prototype for accessGetAccessStatus()
+ *       Revision 1.6  2001/11/16 10:58:29  dstecker
+ *       Handoff fixes and reverse power control additions
+ *       Revision 1.5  2001/10/19 13:41:17  ameya
+ *       Changed ( to { in definition of enum SrbpFrameDurT.
+ *       Revision 1.4  2001/06/12 15:26:56  byang
+ *       Added function prototype declaration for accessSetAUTHs().
+ *       Revision 1.3  2001/02/13 15:15:29  dstecker
+ *       correct #include srbp_include.h
+ *       Revision 1.2  2001/02/13 15:13:43  dstecker
+ *       corrected #include access.h to be srbp_access.h
+ *       #include pswcustom.h for the IS2000A definition
+ *       Revision 1.1  2001/01/29 18:22:34  dstecker
+ *       Initial revision
+ *       Revision 1.1  2000/12/20 00:25:05Z  hans
+ *       Initial revision
+ *       Revision 1.1  2000/12/18 15:45:18  dstecker
+ *       Initial revision
+ *       Revision 1.2  2000/11/13 14:25:09  byang
+ *       IS-2000A Idle Mode and LAC intergration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:10:59Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:05:00Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes
+ *       Revision 1.2  2000/03/01 18:05:25Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.11  1999/06/11 02:13:57  mhayduk
+ *       Added prototype to set whether L2 data burst ack is required.
+ *
+ *       Revision 1.10  1998/12/02 01:51:30  scotvold
+ *       Added T53 guards for #include.
+ *
+ *       Revision 1.9  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.8  1998/10/05 23:20:37  mhayduk
+ *       Added prototype for pilot measurement report indication.
+ *
+ *       Revision 1.7  1998/07/29 23:49:32  mhayduk
+ *       Added capability to reject an access channel message if its
+ *       size exceeds the capsule size.
+ *
+ *       Revision 1.6  1998/07/29 04:20:04  mhayduk
+ *       Added access handover support.
+ *
+ *       Revision 1.5  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.4  1998/05/27 17:16:28  scotvold
+ *       Updated for Release 0.05.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _ACCESS_H_
+
+  #define _ACCESS_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "pswcustom.h"
+#include "ach_msg.h"
+#include "longcode.h"
+#include "pch_msg.h"
+#include "Acc_asmb.h"
+#include "eng_accs.h"
+
+#include "ho_ac.h"
+  
+
+/* Access Channel Message Structure frame size - 6.7.1.2. */
+/* HAC 011001 verify that this is enough for EACH also    */
+#define ENG_ACCESS_FRAME_SIZE               88
+
+/*****************************************************************************
+ * Access Procedure structure definitions
+ ****************************************************************************/
+
+typedef struct
+{
+   WbiosSystime sendTime;         /* system time to start sending message */
+   kal_int16      powerCorrection;     /* tx power level less mean input power */
+   kal_bool      useCurrMip;          /* use current mean input power or not  */
+   kal_uint8      dataLen;             /* length of data to be sent            */
+   kal_uint8      *data;               /* l3 message data, length, data, crc   */
+   Longcode *lcMask;              /* access channel long code mask        */
+   kal_uint8      pamSize;             /* preamble size in frames              */
+   kal_uint16      RN;                  /* random chip delay : 0 - 511          */
+} AccessMsgInfo;
+
+typedef enum
+{
+   SRBP_FRAME_DURATION_5MS,
+   SRBP_FRAME_DURATION_10MS,
+   SRBP_FRAME_DURATION_20MS
+} SrbpFrameDurT;
+
+typedef struct
+{
+   
+   kal_uint8          EachSlot;            /* slot duration in 1.25msecs */
+   kal_uint8          SysTimeOffset;       /* N as defined in IS2000.2-A 2.1.3.4 */
+   kal_uint16         DelaySlots;
+   EACHlongCodeMaskParT LongCodeMaskPar;     /* Parameters to calculate LCM */
+   kal_bool           preamble_enabled;    /* Allowed to send preamble on RPiCH */
+
+   kal_int16          RPiCH_pwr_preamble;  /* RPiCH MOP when transmiting the preamble 
+                                       in dB Q3 format */
+   kal_int16          RPiCH_pwr;           /* RPiCH Power after preamble in db
+                                       Q3 format */
+   kal_bool           useCurrMip;          /* Flag to indicate use of current mean */
+                                    /* input power */
+   kal_uint8          preable_num_frac;    /* (Fractional preable duration + 1) in
+                                    1.25ms */
+   kal_uint8          preamble_frac_duration; /* preamble_frac_duration + 1) in 1.25ms */
+   kal_uint8          preamble_off_duration;  /* In 1.25 ms */
+   kal_uint8          preamble_add_duration;  /* Additional preamble duration in 1.25ms*/
+   kal_int16          EACH_pwr;            /* Transmit power uses on the EACH in db
+                                       Q3 format */
+   SrbpFrameDurT  frame_duration;      /* frame duration in unit of 
+                                       msecs(5,10,20)*/
+   kal_uint16            frame_num_bits;      /* number of bits per frame */
+   kal_uint8      dataLen;             /* length of data to be sent            */
+   kal_uint8      *data;               /* l3 message data, length, data, crc   */
+} EnhAccessMsgInfo;
+
+typedef struct
+{
+ kal_uint8   numAcctSo;
+ kal_uint16  acctSoList[ CP_MAX_NUM_ACCT_SO ];
+ kal_uint8   numAcctSoGrp;
+ kal_uint8   acctSoGrpList[ CP_MAX_NUM_ACCT_SO_GRP ];
+} AcctList;
+
+/* Access Procedure State Machine states */
+typedef enum
+{
+   ENG_SRBP_NULL,
+   ENG_SRBP_INIT,
+   ENG_SRBP_WAIT,
+   ENG_SRBP_ACCESS_HO,
+   ENG_SRBP_ACCESS_PROBE_HO,
+   ENG_SRBP_SUPERVISION_SUSPEND,
+   ENG_SRBP_IDLE
+} SrbpAccessStateT;
+typedef enum
+{
+   TA_STOP_SUPERVISION_SUSPENDED,
+   TA_STOP_WBIOS_FAIL,
+   TA_STOP_L3,
+   TA_STOP_ACCESS_ACKED,
+   TA_STOP_HO
+} ReasonsForTA_Stop;
+
+/* Access Procedure translated events */
+typedef enum
+{
+ ENG_ACCESS_PROC_NO_EVENT          = 0,
+ ENG_ACCESS_PROC_TIMEOUT           = 1,
+ ENG_ACCESS_PROC_WBIOS_FAIL        = 2,
+ ENG_ACCESS_PROC_ACKED             = 3,
+ ENG_ACCESS_PROC_PILOT_REPORT      = 4,
+ ENG_ACCESS_HO_REQUEST             = 5,
+ ENG_ACCESS_HO_RESUME              = 6,
+ ENG_ACCESS_PILOT_MSMT_REPORT      = 7,
+ ENG_ACCESS_PROC_RESUME            = 8,
+ ENG_ACCESS_PREAMBLE_DELAY         = 9
+}SrbpAccessEventT;
+/*****************************************************************************
+ * Prototypes
+ ****************************************************************************/
+  kal_bool accessGetInProgressInd( void );
+  void accessSetHOIndicators( kal_bool accessHo,kal_bool accessHoMsgRsp,
+                kal_bool accessProbeHo,kal_bool accProbeHoOtherMsg,kal_uint8 maxNumProbeHo, kal_bool accHoListUpd );
+
+  kal_uint8 accessGetAUTHs( void );
+  void accessSendFailInd( void );
+  void accessReceivedResponse( void );
+  void accessStopAttempt( void );
+  void accessSetAccessPars( PChAccessParameters *msg );
+  void srbpSuspend ( void );
+  void srbpSuspendNoProbes ( void );
+
+  kal_uint16 srbpMaxProbeSizeInBits( ChannelTypeT chanType );
+  void srbpAccessProbe( kal_uint8 *buffP, AccessProbeInfoT *infoP );
+  void srbpDisableAccessAuthParms( kal_bool Disable );
+       
+  void accessHoRequest( void );
+  void accessResumeAttempt( void );
+  kal_bool isAccessProbeHoAllowed( void );
+  kal_bool isAccessHoAllowed( void );
+ 
+  void accessSetAUTHs( const kal_uint8 auth );
+  kal_bool accessSoExistsAcctList(kal_uint16 so);
+  kal_bool isAccessAcctInclEmg(void);
+  kal_bool srbpEcIoThreshold ( void );
+  void srbpSetAccCorrParms( kal_int8 nomPwr, kal_bool nomPwrExt );
+  kal_uint8 srbpGetInterferCorrection( kal_bool OnTCH, kal_uint8 rc );
+  void srbpL1dAccessPreambleComplete( WbiosSystime sendtime );
+  void srbpL1dAccessProbeComplete( WbiosSystime finishTime );
+  kal_int16 srbpGetAccCorrection( void );
+  kal_uint8 srbpGetAccessMsgType( void );
+  void srbpSetAccessMsgType(kal_uint8 accessMsgType);
+  SrbpAccessStateT getSrbpState(void);
+  kal_bool srbpGetAccHoListUpdate(void);
+  void PswSrbpL1dAccessPreambleDelay(void);
+#endif  /* _ACCESS_H_ */
+
+
+
+
+
+
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\1 2012-07-26 06:28:01 GMT cshen
+** cbp80_cshen_scbp10098**/
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\2 2012-07-26 08:30:43 GMT cshen
+** cbp80_cshen_scbp10098**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/stats.h b/mcu/interface/protocol/as_c2k/1xrtt/stats.h
new file mode 100644
index 0000000..584f232
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/stats.h
@@ -0,0 +1,233 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     stats.h
+ *
+ * Purpose:    This file defines the necessary data structures and interfaces
+ *             to maintain the accumulated statistics. Section x.4.5.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.3 $
+ *   $Modtime$
+ *    $Author: dstecker $
+ *
+ *       $Log: stats.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.3  2004/04/06 14:02:23  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:45  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:06  fpeng
+ *       Initial revision
+ *       Revision 1.6  2002/06/13 13:59:13  hans
+ *       Statistics functions already disabled with ifdef removed.
+ *       Revision 1.5  2002/06/06 13:14:56  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.4  2002/06/04 20:15:01  hans
+ *       Old mux1 and mux2 statistics counter now handled by lmd has been disabled with ifdef's.
+ *       Length field removed from SetRetrievableParameterMsgT typedef. 
+ *       Revision 1.3  2002/05/14 20:41:03  hans
+ *       CR ID636 bug fix for retrievable and settable parameters.
+ *       Revision 1.2  2002/03/28 18:25:13  hans
+ *       is2000 rev 0 add 2, retrievable and settable parameters implemented. 
+ *       CR503: get retrievable parameter implemented. 
+ *       CR508: set retrievable parameter implemented
+ *       Revision 1.1  2001/01/17 10:59:28  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:29  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:11:29Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.10  2000/03/02 01:57:16  scotvold
+ *       Added engRelay calls to extract CPE statistics.
+ *
+ *       Revision 1.9  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.8  1999/02/05 02:16:01  scotvold
+ *       Test mode API change for reporting statistics.
+ *
+ *       Revision 1.7  1998/12/11 20:17:42  lchhailo
+ *       changed  MAX_16_BIT_VALUE
+ *
+ *       Revision 1.6  1998/12/02 00:30:54  scotvold
+ *       Added statistic setting and retrieval.
+ *
+ *       Revision 1.5  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.4  1998/05/01 18:13:54  scotvold
+ *       Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _STATS_H_
+
+  #define _STATS_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "layer2.h"
+#include "Serv_cfg.h"
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+#define MAX_24_BIT_VALUE    16777216L
+#define MAX_16_BIT_VALUE    65536L
+
+
+  #define ST_MAX_PAG_PEG 7          /* maximum page chan peg count    */
+  #define ST_MAX_ACC_PEG 8          /* maximum access chan peg count  */
+  #define ST_MAX_LAYER2_RTC_PEG  5  /* maximum layer2 RTC peg count   */
+  #define ST_MAX_FCCCH_PEG 4        /* maximum page chan peg count    */
+  #define ST_MAX_BCCH_PEG  5        /* maximum page chan peg count    */
+
+
+  #define ST_RESERVED                0
+  #define ST_LEN_16                 16
+  #define ST_LEN_24                 24
+  #define ST_LEN_SYS_TIME           36
+  #define ST_PARAMETER_LEN_16       15
+  #define ST_PARAMETER_LEN_24       23
+  #define ST_UNKNOWN_PARAMETER_LEN  0x03FF
+
+  #define CP_LAYER2_RTC1  0
+  #define CP_LAYER2_RTC2  1
+  #define CP_LAYER2_RTC3  2
+  #define CP_LAYER2_RTC4  3
+  #define CP_LAYER2_RTC5  4
+
+
+/*****************************************************************************
+ * Data Structures
+ ****************************************************************************/
+
+typedef struct
+{
+  kal_uint16  parameterID;
+  kal_uint32  parameter;
+} Parameter32Rec;
+
+/* Multiplex Parameters - for retrieval */
+typedef struct
+{
+  StatCounterT   statCounter;         /* Statistics counter */
+  kal_uint32  muxStats[MAX_STAT_ELEMENT];
+} MuxParmsT;
+
+/* Traffic Channel Multiplex Parameters - for setting */
+typedef struct
+{
+  kal_uint8           numRec;
+  Parameter32Rec  rec[CP_MAX_MUX1_CATEGORY + CP_MAX_MUX2_CATEGORY];
+} MuxRecsT;
+
+typedef struct
+{
+    kal_uint16 ParameterID;
+/* Hans C. Len is not needed in currect implementation:   kal_uint16 ParameterLen;
+ */
+   kal_uint32 Value;  
+
+} SetRetrievableParameterMsgT;
+
+
+typedef struct
+{
+    ExeRspMsgT     RspInfo;
+    StatCounterT   StatCounter;         /* Statistics counter */
+} GetRetrievableParameterMsgT;
+
+
+
+/*****************************************************************************
+ * Function prototypes
+ ****************************************************************************/
+  void cpResetPageChStatistics(void);
+#if defined (MTK_DEV_OPTIMIZE_XL2)
+  void cpTracePageChStatistics(void);
+#endif
+  void cpAddPageChStatistics(kal_uint8 counter,kal_uint8 value);
+  void cpResetBcchStatistics(void);
+  void cpAddBcchStatistics(kal_uint16 counter,kal_uint16 value);
+  void cpResetFccchStatistics(void);
+  void cpAddFccchStatistics(kal_uint16 counter,kal_uint16 value);
+  void cpResetAccessChStatistics(void);
+  void cpIncAccessChStatistics(kal_uint8 counter);
+#ifdef LMD_EACH_ON
+  void cpIncEACHStatistics(kal_uint16 counter);
+#endif
+  void cpAddressedFcschStatistics(kal_uint8 ChanType);
+  void stResetTCStatistics (void);
+  kal_uint32* stGetL2RTCStats (void);
+  void stMultiplexParameters (MuxParmsT* MuxParms);
+  void stRTPM (FTCMessage* msg);
+  void stSTPM (FTCMessage* msg);
+  void stRetrieveStatistics(GetRetrievableParameterMsgT *msgPtr);
+  void stSetPEStatistics(MuxRecsT *muxRecs);
+  void stSetStatistics(MuxRecsT *muxRecs);
+  
+
+#endif  /* _STATS_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/status.h b/mcu/interface/protocol/as_c2k/1xrtt/status.h
new file mode 100644
index 0000000..a96642b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/status.h
@@ -0,0 +1,235 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     status.h
+ *
+ * Purpose:    Definitions and prototypes for Call Progression Status.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.2 $
+ *  $Modtime$
+ *  $Author: fpeng $
+ *
+ *  $Log: status.h $
+ *
+ *  08 29 2017 tina.ma
+ *  [MOLY00274341] [Merge from MP5.TC10]when exit flight mode, if camp on the same cell, report MCC search response eraly
+ *  	
+ *  	merge code from MP5.TC10
+ *
+ *  07 06 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  Correct copyright file header
+ *
+ *  05 17 2017 peijun.zheng
+ *  [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *  	
+ *  	C2k code release.
+ *
+ *  11 09 2016 sue.zhong
+ *  [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *  Update C2K PS code (1/2)
+ *  Revision 1.2  2004/03/25 12:09:46  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.2  2004/02/10 12:50:56  bcolford
+ *  Merged CBP4.0 Release 8.05.0 changes.
+ *  Revision 1.4  2003/11/06 11:24:06  ameya
+ *  Added prototype for cpGetCurrentBand().
+ *  Revision 1.3  2002/06/06 13:15:00  chinh
+ *  Changed and Added Copyright
+ *  Revision 1.2  2001/12/14 17:12:20  mclee
+ *  prototype cpGetCurrentMode(), cpGetNID(), cpGetPilotPN()
+ *  Revision 1.1  2001/01/17 10:59:29  plabarbe
+ *  Initial revision
+ *  Revision 1.1  2000/10/24 14:11:29  fpeng
+ *  Initial revision
+ *  Revision 1.5  2000/08/31 23:41:58Z  bcolford
+ *  Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *  Revision 1.4  2000/08/23 22:11:31Z  RSATTARI
+ *  Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *  Revision 1.17  1999/12/09 22:01:46  gfrye
+ *  Moved definitions of System Determination Indications to css_api.h
+ *
+ *  Revision 1.16  1999/08/31 00:09:18  gfrye
+ *  Added new system determination indication CP_PREV_SYSTEM_LOST_ACCESS.
+ *
+ *  Revision 1.15  1999/03/02 00:53:43  dfischer
+ *  Added state CP_AMPS_SYSDET_DELAY
+ *
+ *  Revision 1.14  1999/02/26 00:33:36  mhayduk
+ *  Added PILOT_PN to status record.
+ *
+ *  Revision 1.13  1999/02/25 19:40:55  mhayduk
+ *  Added call to allow any engine component to request status be
+ *  sent to wbios.
+ *
+ *  Revision 1.12  1998/12/22 19:08:55  dfischer
+ *  Added CP_AMPS_REGCONF_WFOMT
+ *
+ *  Revision 1.11  1998/11/27 22:29:13  mhayduk
+ *  Removed system A/B definitions and just use the
+ *  current ones defined in engine.h.
+ *
+ *  Revision 1.10  1998/11/26 23:15:13  mhayduk
+ *  Added interfaces to update the new status elements -
+ *    mode and block.
+ *
+ *  Revision 1.9  1998/11/26 22:08:19  mhayduk
+ *  Updated status structure for new api.
+ *
+ *  Revision 1.8  1998/10/20 23:58:23  mhayduk
+ *  Added T53 support.
+ *
+ *  Revision 1.7  1998/09/22 18:44:57  tdaly
+ *  Added IS-95 analog mode support.
+ *
+ *  Revision 1.6  1998/08/28 20:15:59  mhayduk
+ *  Added setting of band.
+ *
+ *  Revision 1.5  1998/05/27 17:16:28  scotvold
+ *  Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ * 
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _STATUS_H_
+
+  #define _STATUS_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "cssapi.h"
+#include "pswapi.h"
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+
+  #define CP_AMPS_FIRST_STATE  CP_AMPS_WBIOS_INIT
+
+  #define CP_AMPS_LAST_STATE   CP_AMPS_NUM_STATES
+
+/*****************************************************************************
+ * Call Processing Status Information structure
+ ****************************************************************************/
+  typedef struct
+  {
+    CPState state;                /* Call Processing State                */
+    CPState prevState;            /* Previous Call Processing State       */
+    kal_uint8   roam;                 /* ROAM Status                          */
+    SysCdmaBandT band;            /* Current Operating Band               */
+    kal_uint16  channel;              /* Current Channel Number               */
+    kal_uint8   mode;                 /* current mode: PCS/CellularAnalog     */
+    kal_uint8   block;                /* current CDMA block (if CDMA system)  */
+    kal_uint8   servingSystem;        /* Serving System/Block                 */
+    kal_uint16  sid;                  /* Last-Received System ID              */
+    kal_uint16  nid;                  /* Last-Received Network ID             */
+    kal_uint16  pilotPN;              /* PILOT_PN                             */
+  } CPStatus;
+
+
+/*****************************************************************************
+ * Function prototypes
+ ****************************************************************************/
+  void    cpSetSystemIndication(kal_uint8 indication);
+  kal_uint8   cpGetSystemIndication(void);
+  void    setCPState(CPState state);
+  void    cpSetRoam(kal_uint8 roam);
+  kal_uint8   cpGetRoam(void);
+  void    cpSetCurrentBand(SysCdmaBandT band);
+  SysCdmaBandT cpGetCurrentBand(void);
+  void    cpSetCurrentChannel(kal_uint16 channel);
+  kal_uint16  cpGetCurrentChannel(void);
+  void    cpSetCurrentBlock(kal_uint8 block);
+  void    cpSetServingSystem(kal_uint8 servingSystem);
+  kal_uint8   cpGetServingSystem(void);
+  void    cpSetSysID(kal_uint16 sid);
+  kal_uint16  cpGetSysID(void);
+  void    cpSetNID(kal_uint16 nid);
+  kal_uint16  cpGetNID(void);
+  void    cpSetPilotPN(kal_uint16 pn);
+  kal_uint16  cpGetPilotPN(void);
+  void    cpReportStatus(void);
+  void    cpSetProtocolRev( kal_uint8 prev );
+  kal_uint8    cpGetProtocolRev(void);
+  void    cpSetSystemStatus( kal_uint8 status );
+  kal_uint8   cpGetSystemStatus(void);
+  kal_uint8   cpGetOrigCallMode(void);
+  void    cpSetOrigCallMode(kal_uint8 callMode);
+
+#if defined(MTK_DEV_SLT)
+  kal_bool lstIf1xRxValidated (void);
+  
+  void lstSet1xRxValidated (kal_bool value);
+  
+  void lstInit1xProcedureVariable (void);
+  
+  kal_bool lstIf1xTxValidated (void);
+  
+  void lstSet1xTxValidated (kal_bool value);
+#endif /* MTK_DEV_SLT */
+void cpSetRegZone(kal_uint16 regZone);
+CPState getCPPrevState(void);
+void cpInitStatus(void);
+
+#endif  /* _STATUS_H_ */
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/sync_msg.h b/mcu/interface/protocol/as_c2k/1xrtt/sync_msg.h
new file mode 100644
index 0000000..9daa587
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/sync_msg.h
@@ -0,0 +1,109 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     sync_msg.h
+ *
+ * Purpose:    Header file Containing the structures for the Sync Channel
+ *             Message.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *   $Modtime$
+ *
+ *       $Log: sync_msg.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *       Revision 1.2  2004/03/25 12:09:47  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:07  fpeng
+ *       Initial revision
+ *       Revision 1.3  2002/06/06 13:15:14  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.2  2001/06/12 11:14:33  byang
+ *       Added 'Not Used' enumeration identifiers.
+ *       
+ *       Revision 1.1  2001/01/17 10:59:32  plabarbe
+ *       Initial revision
+ *       Revision 1.3  2000/12/05 17:45:35  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:27:23  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:30Z  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:11:35Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:16:15Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.3  1998/03/30 23:26:03  mhayduk
+ *       Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _SYNC_MSG_H_
+
+  #define _SYNC_MSG_H_ 1
+
+#include "pswairmsg.h"
+
+#endif  /* _SYNC_MSG_H_ */
+
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/systime.h b/mcu/interface/protocol/as_c2k/1xrtt/systime.h
new file mode 100644
index 0000000..63b36e3
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/systime.h
@@ -0,0 +1,121 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Filename:   systime.h
+ *
+ * Purpose:    Definition of SYSTIME and supporting routines.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Revision: 1.3 $
+ *    $Author: hans $
+ *
+ *       $Log: systime.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.3  2004/09/28 17:14:10  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.2  2004/03/25 12:09:47  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:07  fpeng
+ *       Initial revision
+ *       Revision 1.2  2002/06/06 13:15:18  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.1  2001/01/17 10:59:34  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:31  fpeng
+ *       Initial revision
+ *       Revision 1.4  2000/09/09 00:05:57Z  RSATTARI
+ *       Added function proto for cpGetFullSystemTime().
+ *       Revision 1.3  2000/08/23 22:11:37Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:16:18Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.5  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.4  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _SYSTIME_H_
+
+#define _SYSTIME_H_ 1
+
+#include "pswairmsg.h"
+typedef struct
+{
+   kal_uint8 _80msSyncTime[CP_SYSTIME_SIZE];
+   kal_uint8 LP_SEC;
+   kal_uint8 LTM_OFF;
+   kal_bool  DAYLT;
+} SyncMsgSysTimeType;
+
+
+/* System Time */
+#endif  /*_SYSTIME_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/tokens.h b/mcu/interface/protocol/as_c2k/1xrtt/tokens.h
new file mode 100644
index 0000000..668c6e0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/tokens.h
@@ -0,0 +1,359 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     tokens.h
+ *
+ * Purpose:    This header file contains a generic list of tokens which are
+ *             uniquely numbered. The tokens are to be used in TRACE macros
+ *             to facilitate easy identification of tokens and duplications.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.2 $
+ *   $Modtime$
+ *    $Author: fpeng $
+ *
+ *       $Log: tokens.h $
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *       Revision 1.2  2004/03/25 12:09:48  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.1  2003/05/12 15:39:13  fpeng
+ *       Initial revision
+ *       Revision 1.2  2002/06/06 13:15:49  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.1  2001/01/17 10:59:46  plabarbe
+ *       Initial revision
+ *       Revision 1.1  2000/10/24 14:11:36  fpeng
+ *       Initial revision
+ *       Revision 1.3  2000/08/23 22:11:54Z  RSATTARI
+ *       Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *       Revision 1.2  2000/03/01 18:18:39Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.3  1999/03/22 18:03:15  bcassidy
+ *       1. Add more token ids.
+ *
+ *       Revision 1.2  1998/09/25 20:49:58  pjiang
+ *       updated the tokens to 250
+ *
+ *       Revision 1.1  1998/02/05 21:41:34  dehman
+ *       Initial revision
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _TOKENS_H_
+
+  #define _TOKENS_H_ 1
+
+#define TK01  1
+#define TK02  2
+#define TK03  3
+#define TK04  4
+#define TK05  5
+#define TK06  6
+#define TK07  7
+#define TK08  8
+#define TK09  9
+#define TK10  10
+#define TK11  11
+#define TK12  12
+#define TK13  13
+#define TK14  14
+#define TK15  15
+#define TK16  16
+#define TK17  17
+#define TK18  18
+#define TK19  19
+#define TK20  20
+#define TK21  21
+#define TK22  22
+#define TK23  23
+#define TK24  24
+#define TK25  25
+#define TK26  26
+#define TK27  27
+#define TK28  28
+#define TK29  29
+#define TK30  30
+#define TK31  31
+#define TK32  32
+#define TK33  33
+#define TK34  34
+#define TK35  35
+#define TK36  36
+#define TK37  37
+#define TK38  38
+#define TK39  39
+#define TK40  40
+#define TK41  41
+#define TK42  42
+#define TK43  43
+#define TK44  44
+#define TK45  45
+#define TK46  46
+#define TK47  47
+#define TK48  48
+#define TK49  49
+#define TK50  50
+#define TK51  51
+#define TK52  52
+#define TK53  53
+#define TK54  54
+#define TK55  55
+#define TK56  56
+#define TK57  57
+#define TK58  58
+#define TK59  59
+#define TK60  60
+#define TK61  61
+#define TK62  62
+#define TK63  63
+#define TK64  64
+#define TK65  65
+#define TK66  66
+#define TK67  67
+#define TK68  68
+#define TK69  69
+#define TK70  70
+#define TK71  71
+#define TK72  72
+#define TK73  73
+#define TK74  74
+#define TK75  75
+#define TK76  76
+#define TK77  77
+#define TK78  78
+#define TK79  79
+#define TK80  80
+#define TK81  81
+#define TK82  82
+#define TK83  83
+#define TK84  84
+#define TK85  85
+#define TK86  86
+#define TK87  87
+#define TK88  88
+#define TK89  89
+#define TK90  90
+#define TK91  91
+#define TK92  92
+#define TK93  93
+#define TK94  94
+#define TK95  95
+#define TK96  96
+#define TK97  97
+#define TK98  98
+#define TK99  99
+#define TK100  100
+#define TK101  101
+#define TK102  102
+#define TK103  103
+#define TK104  104
+#define TK105  105
+#define TK106  106
+#define TK107  107
+#define TK108  108
+#define TK109  109
+#define TK110  110
+#define TK111  111
+#define TK112  112
+#define TK113  113
+#define TK114  114
+#define TK115  115
+#define TK116  116
+#define TK117  117
+#define TK118  118
+#define TK119  119
+#define TK120  120
+#define TK121  121
+#define TK122  122
+#define TK123  123
+#define TK124  124
+#define TK125  125
+#define TK126  126
+#define TK127  127
+#define TK128  128
+#define TK129  129
+#define TK130  130
+#define TK131  131
+#define TK132  132
+#define TK133  133
+#define TK134  134
+#define TK135  135
+#define TK136  136
+#define TK137  137
+#define TK138  138
+#define TK139  139
+#define TK140  140
+#define TK141  141
+#define TK142  142
+#define TK143  143
+#define TK144  144
+#define TK145  145
+#define TK146  146
+#define TK147  147
+#define TK148  148
+#define TK149  149
+#define TK150  150
+#define TK151  151
+#define TK152  152
+#define TK153  153
+#define TK154  154
+#define TK155  155
+#define TK156  156
+#define TK157  157
+#define TK158  158
+#define TK159  159
+#define TK160  160
+#define TK161  161
+#define TK162  162
+#define TK163  163
+#define TK164  164
+#define TK165  165
+#define TK166  166
+#define TK167  167
+#define TK168  168
+#define TK169  169
+#define TK170  170
+#define TK171  171
+#define TK172  172
+#define TK173  173
+#define TK174  174
+#define TK175  175
+#define TK176  176
+#define TK177  177
+#define TK178  178
+#define TK179  179
+#define TK180  180
+#define TK181  181
+#define TK182  182
+#define TK183  183
+#define TK184  184
+#define TK185  185
+#define TK186  186
+#define TK187  187
+#define TK188  188
+#define TK189  189
+#define TK190  190
+#define TK191  191
+#define TK192  192
+#define TK193  193
+#define TK194  194
+#define TK195  195
+#define TK196  196
+#define TK197  197
+#define TK198  198
+#define TK199  199
+#define TK200  200
+#define TK201  201
+#define TK202  202
+#define TK203  203
+#define TK204  204
+#define TK205  205
+#define TK206  206
+#define TK207  207
+#define TK208  208
+#define TK209  209
+#define TK210  210
+#define TK211  211
+#define TK212  212
+#define TK213  213
+#define TK214  214
+#define TK215  215
+#define TK216  216
+#define TK217  217
+#define TK218  218
+#define TK219  219
+#define TK220  220
+#define TK221  221
+#define TK222  222
+#define TK223  223
+#define TK224  224
+#define TK225  225
+#define TK226  226
+#define TK227  227
+#define TK228  228
+#define TK229  229
+#define TK230  230
+#define TK231  231
+#define TK232  232
+#define TK233  233
+#define TK234  234
+#define TK235  235
+#define TK236  236
+#define TK237  237
+#define TK238  238
+#define TK239  239
+#define TK240  240
+#define TK241  241
+#define TK242  242
+#define TK243  243
+#define TK244  244
+#define TK245  245
+#define TK246  246
+#define TK247  247
+#define TK248  248
+#define TK249  249
+#define TK250  250
+#define TK251  251
+#define TK252  252
+#define TK253  253
+#define TK254  254
+#define TK255  255
+
+#endif
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/wbios.h b/mcu/interface/protocol/as_c2k/1xrtt/wbios.h
new file mode 100644
index 0000000..0dd8bd0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/wbios.h
@@ -0,0 +1,1257 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     wbios.h
+ *
+ * Purpose:    WBIOS definitions and prototypes.
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *
+ *       $Log: wbios.h $
+ *
+ *       11 03 2019 yanfeng.xu
+ *       [MOLY00455977] [MT6885][Petrus][Q0][MP1][SI2][SQC][China][Guangzhou][4GMM][FT][MDST][CAT][FTAA][CT+CMCC][GZ-HOTEL][ASSERT]file:mcu/l1/mml1/mml1_tx/md97/src/mml1_tx_txsys_glb.c line:385
+ *
+ *       08 14 2019 tina.ma
+ *       [MOLY00430774] [VMOLY]code merge from UMOLYE--MIPI feature for C2K PSW
+ *       	
+ *       	.
+ *
+ *       12 18 2018 danny.dai
+ *       [MOLY00370973] [MT6779][Lafite][P0][BSP+][MP2][CTC FT][SH][om_c2k6m][Benchmark][FT_SQC_CS Performace_08]DUT MTC failure 12 times however REF-MI 8 se failure 1 times
+ *       	
+ *       	VMOLY.EVB.SEPT.DEV: opt for PCH resync denied issue
+ *
+ *       09 07 2018 yanfeng.xu
+ *       [MOLY00342318] [MoDIS on Linux] MoDIS built by Clang toolchain on Linux
+ *
+ *       05 15 2018 tina.ma
+ *       [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ *       	
+ *       	MSPM feature merge to UMOLYE
+ *
+ *       07 21 2017 jiayong.zhang
+ *       [MOLY00265972] [Gen93]Merge code from R1 to TRUNK
+ *       	
+ *       	.
+ *
+ *       07 18 2017 adel.liao
+ *       [MOLY00243822] [6293][C2K][HLP]code modify according to UT on UMOLYA TRUNK.
+ *       	
+ *       	UT stub and remove unused code in HLP
+ *
+ *       07 06 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       Correct copyright file header
+ *
+ *       07 04 2017 yanfeng.xu
+ *       [MOLY00261290] [BIANCO][MT6763][RDIT][L+L][BringUp]md1:(MCU_core0.vpe1.tc1(VPE1)) [ASSERT] file:mcu/l1core/modem/el1/el1d/src/tx/ltxerrorcheck.c line:132
+ *
+ *       07 04 2017 sue.zhong
+ *       [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *       ::KAL type - L3, folder ps
+ *
+ *       05 19 2017 gavin.zhang
+ *       [MOLY00247455] [6293][C2K][PS]Change KAL timer API to event scheduler API
+ *       	
+ *       	.
+ *
+ *       05 17 2017 peijun.zheng
+ *       [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *       	
+ *       	C2k code release.
+ *
+ *       02 24 2017 yanfeng.xu
+ *       [MOLY00231771] SIXTH00016527 merge to UMOLYA TRUNK
+ *
+ *       02 15 2017 danny.dai
+ *       [MOLY00229716] [new feature]C2K EM Develop: 1xL3 and EvL3 module codes
+ *       	
+ *       	L3 EM: 1xrtt and evdo code for EM
+ *
+ *       02 14 2017 peijun.zheng
+ *       [MOLY00226757] [Bianco Bring-up][C2K]Fix the problem of L3 UIM notify msg
+ *       	
+ *       	PSW UIM enhance
+ *
+ *       01 22 2017 lily.ruan
+ *       [MOLY00225859] [6293][C2K]Merge CL from T0 branch to Trunk branch.
+ *
+ *       	merge access delay feature
+ *
+ *       01 12 2017 peijun.zheng
+ *       [MOLY00221576] [6293][C2K] Fix the problem of bit 64 msg process, UIM enhance bug, Nvram register enhance
+ *
+ *       12 01 2016 sue.zhong
+ *       [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ *       Update C2K source
+ *
+ *       11 09 2016 sue.zhong
+ *       [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ *       Update C2K PS code (1/2)
+ *       Revision 1.14  2006/01/24 12:39:16  wavis
+ *       Fix GetNam to always get active NAM.
+ *       Revision 1.13  2005/12/21 11:32:26  hans
+ *       Updated qpch algorithm and new L1 interface.
+ *       Revision 1.12  2005/10/28 10:46:58  blee
+ *       Add MMI event for packet data call status
+ *       Revision 1.11  2005/10/27 11:59:21  vsethuraman
+ *       CR 7079 :- OOSA event defined
+ *       Revision 1.10  2005/10/26 13:09:25  hans
+ *       cr7085 - Create new MMI Orig User Cancel event indication
+ *       Revision 1.9  2005/08/17 14:11:05  hans
+ *       CR6900 - Enhanced qpch indicator detection algorithm [DSPM/L1D/PSW]. CR6902 - Immediate PSW-L1D wake message for PCH/FCCCH
+ *       Revision 1.8  2005/08/02 16:28:43  wfu
+ *       - Add wbiosRschPowerSet prototype.
+ *       - Delete wbiosSetTAdd prototype.
+ *       Revision 1.7  2005/05/09 17:46:58  wfu
+ *       Add #define EV_CONN_COMPLETE        85
+ *       Revision 1.6  2005/03/18 11:46:03  hans
+ *       Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
+ *       Revision 1.5  2004/09/28 16:55:55  hans
+ *       Changes from CBP6.0 merged.
+ *       Revision 1.4  2004/04/23 10:51:18  asharma
+ *       CBP6.1 (Phase-1) DV Data and Voice Call Setup changes.
+ *       Revision 1.3.1.2  2004/04/14 15:21:03  asharma
+ *       Revision 1.3  2004/04/06 14:02:27  dstecker
+ *       CBP6.1 release 1
+ *       Revision 1.2  2004/03/25 12:09:49  fpeng
+ *       Updated from 6.0 CP 2.5.0
+ *       Revision 1.3  2004/02/10 12:50:57  bcolford
+ *       Merged CBP4.0 Release 8.05.0 changes.
+ *       Revision 1.70  2003/12/02 18:07:55  akayvan
+ *       Added the prototype for wbiosSrchResultsComplete().
+ *       Revision 1.69  2003/11/06 11:19:41  ameya
+ *       Changed STORED_SID_NID to STORED_POS_SID_NID.
+ *       Revision 1.68  2003/08/13 15:09:09  mclee
+ *       Remove arguement from sccCPServiceOptionValidation()
+ *       Revision 1.67  2003/08/01 13:34:03  mclee
+ *       Fix CR2506 by removing all instances of CBP3 compile flag and dead code
+ *       Revision 1.66  2003/05/05 14:23:29  ameya
+ *       Deleted the cpIS95NAMParms structure that is now merged into IS95NAMParms structure.
+ *       Revision 1.65  2003/04/30 09:34:18  mclee
+ *       Deleted prototype wbiosSrReorigCall().  Added prototype wbiosReorigCall().
+ *       Revision 1.64  2003/04/28 10:49:51  byang
+ *       CR#2165: Add data structure definition for R-SCH Config. Update
+ *       and function prototype for wbiosRevSchConfigUpdate().
+ *       Revision 1.63  2003/03/13 16:36:54  byang
+ *       CR#1821: Add definition for data structure
+ *       cpForSchL1dConfigUpdate and function prototype declaration
+ *       for wbiosForSchConfigUpdate().
+ *       Revision 1.62  2002/12/30 19:09:26  akayvan
+ *       Per CR570, Cosmetic changes for replacement of
+ *       IS2000A with either IS2000_REV_A or IS2000_REV_0.
+ *       Revision 1.61  2002/12/26 15:07:56  dstecker
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0
+ *       Revision 1.60  2002/12/26 12:08:41  hans
+ *       Conditional compile flag IS2000A replaced with IS_2000_REV_A and IS_2000_REV_0 for rev A and Rev 0 specific code.
+ *       Revision 1.59  2002/11/21 12:29:07  bcolford
+ *       Add prototype to support new RSSI reset callout.
+ *       Revision 1.58.1.2  2002/11/12 15:52:00  bcolford
+ *       Add prototype for a callout to reset the L1A Rssi state machines
+ *       and queues prior to scanning a set of AMPS channels.
+ *       Revision 1.58.1.1  2002/10/31 18:24:09  bcolford
+ *       Duplicate revision
+ *       Revision 1.58  2002/10/31 18:24:09  amala
+ *       Changed RMS Error Phase parameter type to kal_uint8.
+ *       Revision 1.57  2002/10/18 15:26:10  snreddy
+ *       Modified wbiosForSch() and wbiosRevSch() to conform to the
+ *       multiple SCh assignment design.
+ *       Revision 1.56  2002/09/30 15:15:42  mshaver
+ *       Changes to support the single NAM data structure type
+ *       definition PswIs95NamT, of type packed.
+ *       Revision 1.55  2002/09/10 16:50:35  bcolford
+ *       Update the prototype for GetRSSI() function.
+ *       Revision 1.54  2002/08/27 17:11:09  byang
+ *       Update API for wbiosRsrAlloc(), wbiosRsrDealloc(), and
+ *       wbiosResourceUpdate().
+ *       Revision 1.53  2002/08/26 16:25:00  ameya
+ *       Added events EV_CDMA_INSVC and EV_AMPS_INSVC to the set of events in PE.
+ *       Revision 1.52  2002/08/22 11:08:10  agontar
+ *       Change some static data to be declared constant - CR 1070
+ *       Revision 1.51  2002/08/21 14:47:24  chinh
+ *       Modified wbiosAccessMessageAbort() function prototype (CR917).
+ *       Revision 1.50  2002/08/19 10:46:26  dstecker
+ *       CBP4 candidate frequency implimentation
+ *       Revision 1.49  2002/08/09 10:25:42  bcolford
+ *       Add prototype to support Amps Focc Idle Mode (or power saving)
+ *       control.
+ *       Revision 1.48  2002/07/26 14:13:29  ameya
+ *       Added negative sids/nids and stored negative sid/nid parameter to cpIS95NAMParms structure.
+ *       Revision 1.47.3.2  2002/07/26 09:21:32  bcolford
+ *       Add new prototype and macros for controlling Focc Idle Mode
+ *       operation
+ *       Revision 1.47.3.1  2002/07/16 10:30:39  bcolford
+ *       Duplicate revision
+ *       Revision 1.47  2002/07/16 10:30:39  dstecker
+ *       Work around for TA timer expiration on access probes
+ *       Revision 1.46  2002/07/15 13:16:03  chinh
+ *       Removed compile switch CBP3_MERGE (CR598).
+ *       Revision 1.45  2002/07/11 18:22:33  byang
+ *       CR #421: Add EV_RETRY_TIMER_ACTIVE &
+ *       EV_RETRY_TIMER_INACTIVE event to notify MMI when
+ *       a retry order from the network is in forced.
+ *       CR #952: Update function prototype for wbiosReportBurstDTMF().
+ *       Revision 1.44  2002/06/13 13:59:58  hans
+ *       Statistics functions already disabled with ifdef removed.
+ *       Revision 1.43  2002/06/07 14:15:54  chinh
+ *       Modified wbiosAccessMessageAbort function prototype to take
+ *       the sendTime and preamble size as parameters (CR702).
+ *       Revision 1.42  2002/06/06 13:16:07  chinh
+ *       Changed and Added Copyright
+ *       Revision 1.41  2002/05/31 20:10:21  akayvan
+ *       QPCH/PI mods.
+ *       Revision 1.40  2002/05/29 15:21:42  ameya
+ *       Added prototype for wbiosCssValidateSyncMsg().
+ *       Revision 1.39  2002/05/14 20:42:25  hans
+ *       CR ID636 bug fix for retrievable and settable parameters.
+ *       Revision 1.38  2002/05/10 14:07:27  ameya
+ *       Added prototype for wbiosL1dSyncMsgRecvd().
+ *       Revision 1.37  2002/05/07 16:29:01  byang
+ *       Add function prototype declaration for
+ *       wbiosSccGetDefaultServiceConfiguration().
+ *       Revision 1.36  2002/03/28 18:26:10  hans
+ *       is2000 rev 0 add 2, retrievable and settable parameters implemented.
+ *       Revision 1.35  2002/03/01 16:30:06  AMALA
+ *       Added Location Services AFLT functionality.
+ *       Revision 1.34  2002/02/19 14:06:22  akayvan
+ *       Prototype for wbiosReversePowerSet() was modified, also the
+ *       declaration for wbiosTrafficChannelPowerStep() was commented
+ *       out since it's now merged with wbiosReversePowerSet().
+ *       Revision 1.33  2002/02/14 16:24:39  byang
+ *       CR373: Add function prototype declaration for
+ *       wbiosSccIsServOptionAttributeAvailable().
+ *       Revision 1.32  2002/02/13 13:25:42  mshaver
+ *       Revision description clean up.
+ *       Revision 1.31  2002/02/12 17:21:12  bcolford
+ *       Add the abbreviated alert, reorder and intercept processing on the
+ *       voice channel as requested by a customer
+ *       Revision 1.30  2002/02/06 11:49:56  mclee
+ *       Add prototype wbiosAMPSGetkal_uint16Counts
+ *       Revision 1.29  2002/01/31 13:52:41  bcolford
+ *       Add the hooks for Idle Mode processing.
+ *       Revision 1.28  2002/01/17 17:32:20  akayvan
+ *       Implemented Slotted Mode mods.
+ *       Revision 1.27  2002/01/10 17:12:24  AMALA
+ *       Added emergency mode processing for new system selection.
+ *       Revision 1.26  2002/01/02 10:13:21  AMALA
+ *       Added new system selection changes.
+ *       Added system re-scan functionality.
+ *       Revision 1.25  2001/12/19 15:10:54  bcolford
+ *       Make FrameIndex a 32 bit value so message cracking will work
+ *       better.
+ *       Revision 1.24  2001/12/14 17:13:14  mclee
+ *       prototype wbiosPSInfoRsp()
+ *       Revision 1.23  2001/11/20 12:34:32  mclee
+ *       Add prototype wbiosReportNamInfo and struct cpModNamparms.
+ *       Revision 1.22  2001/11/13 17:51:57  byang
+ *       Added support for FSCH, RSCH, control hold and active for FCH.
+ *       Revision 1.21  2001/11/08 12:31:59  AMALA
+ *       Deleted unused function prototypes:
+ *          wbiosGetActivePilotStrengthDbQ()
+ *          wbiosGetMeanInputPower()
+ *       Revision 1.20  2001/10/31 11:07:34  akayvan
+ *       Modified wbiosReversePowerSet() parameter declaration type from
+ *       kal_uint8 to kal_int8.
+ *       Revision 1.19  2001/10/17 16:58:12  bcolford
+ *       Add FOCC Duty Cycling Power Saving feature
+ *       Revision 1.18  2001/10/08 14:48:07  mclee
+ *       prototype wbiosReportPrlInfo()
+ *       Revision 1.17  2001/09/17 14:11:51  AMALA
+ *       CBP3 System Selection port
+ *       Revision 1.16  2001/09/07 18:11:49  akayvan
+ *       Added declaration for the new function
+ *       wbiosForPowerControlParams() per FPC.
+ *       Revision 1.15  2001/08/30 15:04:37  byang
+ *       Modified wbiosSCServiceConfigurationValidation() to accept
+ *       an enumeration instead of a Boolean.
+ *       Revision 1.14  2001/08/03 15:15:48  dstecker
+ *       Modifications for IS2000 handoffs
+ *       Revision 1.13  2001/07/18 15:16:42  chinh
+ *       cbp3 porting for Idle and Access
+ *       Revision 1.12  2001/06/19 10:33:06  byang
+ *       Changed the first parameter, pilotSeq, of wbiosPilotSet() from
+ *       kal_int8 to kal_int16 for compatibility.
+ *       Revision 1.11  2001/06/13 18:00:55  byang
+ *       Changed the first parameter, pilotSeq, of wbiosPilotSet() from
+ *       kal_uint8 to kal_int8 for compatibility.
+ *       Revision 1.10  2001/06/12 15:46:07  byang
+ *       Changed the first input parameter, pilotSeq, for
+ *       engRelayPilotMeasureReport() from kal_uint8 to kal_int16.
+ *       Revision 1.9  2001/05/29 14:19:27  akayvan
+ *       Commented out the declaration for wbiosReportPwrRepFrames()
+ *       per CR#17.
+ *       Revision 1.8  2001/04/03 18:21:02  akayvan
+ *       Added wbiosFDSCHAcqInd().
+ *       Revision 1.7  2001/03/28 16:09:20  akayvan
+ *       Removed declaration for wbiosFcschMonitorStop() per L1D
+ *       request.  Reduced the number of arguments for the function
+ *       declaration of wbiosTrafficChannelSendMessage().
+ *       Revision 1.6  2001/03/16 11:36:36  akayvan
+ *       Traffic code phase1 added.
+ *       Revision 1.5  2001/02/14 10:06:30  dstecker
+ *       fixed a vanishing prototype
+ *       Revision 1.3  2001/02/09 17:01:56  dstecker
+ *       fix compile warnings (none where bugs)
+ *       Revision 1.2  2001/01/29 18:20:53  dstecker
+ *       new access probe architecture
+ *       Revision 1.1  2001/01/17 10:59:55  plabarbe
+ *       Initial revision
+ *       Revision 1.3  2000/12/05 17:45:38  byang
+ *       Idle mode - IS2000A Addendum modifications.
+ *       Revision 1.2  2000/11/13 14:27:26  byang
+ *       IS-2000A Idle Mode and LAC integration - Initial Release.
+ *       Revision 1.1  2000/10/24 21:11:38Z  fpeng
+ *       Initial revision
+ *       Revision 1.12  2000/09/23 02:37:48Z  rnookala
+ *       removed function protoype wbiosGetPrl
+ *       Revision 1.11  2000/09/09 00:07:08Z  RSATTARI
+ *       Added function proto for wbiosReportFull SystemTime().
+ *       Revision 1.10  2000/08/31 23:42:01Z  bcolford
+ *       Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
+ *       Revision 1.9  2000/08/23 22:24:32Z  rnookala
+ *       Isotel release 2.8
+ *       Revision 1.8  2000/07/27 01:31:20Z  hhong
+ *       To add prototye for wbiosAccesptLongCodeChangeReq to get rid of
+ *       compiler warning.
+ *       Revision 1.7  2000/06/01 15:23:38Z  bcolford
+ *       Removed prototype to wbiosAMPSL1dStartup() function.
+ *       Revision 1.6  2000/05/19 01:19:19Z  hhong
+ *       To add wbiosReportCPDisconnect
+ *       Revision 1.5  2000/03/31 16:58:09Z  cmastro
+ *       fixed merge misshap
+ *       Duplicate revision
+ *       Revision 1.2  2000/03/01 18:18:44Z  rsattari
+ *       Isotel release 2.3 updates.
+ *       Revision 1.66  2000/01/25 16:41:18  gfrye
+ *       Missed name change in function prototype.
+ *
+ *       Revision 1.65  2000/01/25 14:38:32  gfrye
+ *       Changed PRL list structure name to Is683PrlList to avoid name
+ *       conflict with OTA and removed unused elements.
+ *
+ *       Revision 1.64  2000/01/24 16:33:20  gfrye
+ *       Changed "wbiosOtaGet" to wbiosGet" to avoid name conflict with OTASP.
+ *
+ *       Revision 1.63  2000/01/21 22:14:17  gfrye
+ *       Added new functions to get new values for NAM parameters.
+ *
+ *       Revision 1.62  2000/01/17 22:27:19  scotvold
+ *       TC Backward Compatibility changes.
+ *
+ *       Revision 1.61  1999/12/23 18:54:23  gfrye
+ *       Added wbiosSetTAdd to inform the SFM of the current value for T_ADD.
+ *
+ *       Revision 1.60  1999/12/09 23:04:35  gfrye
+ *       New functions for OTASP and PRL support.
+ *
+ *       Revision 1.59  1999/09/11 00:20:19  scotvold
+ *       Removed repeat flag from wbiosTrafficChannelSendMessage().
+ *
+ *       Revision 1.58  1999/09/02 20:18:12  gfrye
+ *       Added wbiosSCServiceOptionIsHSPD to determine if a particular
+ *       rev 3+ page response or origination is for a HSPD service.
+ *
+ *       Revision 1.57  1999/08/27 19:42:19  gfrye
+ *       Expanded dynamic range of sleep times for wbiosOutOfServiceAreaSleep.
+ *
+ *       Revision 1.56  1999/07/28 19:29:09  gfrye
+ *       Added new prototype wbiosOosaWakeup to wake up L1 if an origination is
+ *       received during OOSA sleep.
+ *
+ *       Revision 1.55  1999/07/23 18:00:22  scotvold
+ *       Changes to wbiosReportHandoff API call to indicate
+ *       type of Hard Handoff.
+ *
+ *       Revision 1.54  1999/06/20 04:28:09  scotvold
+ *       Removed redundant declarations.
+ *
+ *       Revision 1.53  1999/06/19 02:02:15  dfischer
+ *       Added EV_TC_RELEASE_LOCK
+ *
+ *       Revision 1.52  1999/06/11 02:11:13  mhayduk
+ *       Added new CP response value for data burst sent indication
+ *       from L3.
+ *
+ *       Revision 1.51  1999/06/11 01:05:03  mhayduk
+ *       Added reporting of packet zone ID and P_REVr.
+ *
+ *       Revision 1.50  1999/06/04 23:27:26  scotvold
+ *       New Message Transmitter.
+ *
+ *       Revision 1.49  1999/05/19 20:21:30  mhayduk
+ *       Removed wbiosSCHSPDEnabled().
+ *       Added  wbiosReportPacketZoneID().
+ *
+ *       Revision 1.48  1999/05/18 17:37:14  dfischer
+ *       Added wait for event EV_ANALOG_PAGE_RECEIVED when a page is received
+ *
+ *       Revision 1.47  1999/05/04 21:29:20  mhayduk
+ *       Added support to request voice privacy indication for indication
+ *       in Page Response.
+ *
+ *       Revision 1.46  1999/04/16 00:54:23  mhayduk
+ *       Modified parameters passed  in AMPS dtmf calls.
+ *
+ *       Revision 1.45  1999/04/15 01:38:11  mhayduk
+ *       Added reporting of pwr_rep_frames.
+ *
+ *       Revision 1.44  1999/04/14 16:45:36  scotvold
+ *       EV_TC_RELEASE_XX API changes.
+ *       Conversation Quality Alarm API change.
+ *
+ *       Revision 1.43  1999/04/12 13:31:46  scotvold
+ *       Added T53 HSPD support.
+ *       Added 95B SCAM support.
+ *       Added 95B GHDM support and consolidated with EHDM.
+ *
+ *       Revision 1.42  1999/03/18 19:55:25  mhayduk
+ *       Added support for Searching Out of Service Area operation.
+ *
+ *       Revision 1.41  1999/03/03 00:30:45  mhayduk
+ *       Added support for reporting of PSIST failure.
+ *
+ *       Revision 1.40  1999/02/24 04:10:38  scotvold
+ *       Added Service Configuration Reject reason.
+ *
+ *       Revision 1.39  1999/02/08 22:58:03  scotvold
+ *       Changed Feature/Alert/Flash interfaces.
+ *       Changed wbiosSCServiceOptionControl interfaces.
+ *
+ *       Revision 1.38  1999/02/04 21:54:13  scotvold
+ *       Added missing R1.2 changes.
+ *
+ *       Revision 1.37  1999/01/26 18:52:17  scotvold
+ *       R1.2 API changes.
+ *
+ *       Revision 1.36  1999/01/21 17:21:55  lchhailo
+ *       fixed syntax
+ *
+ *       Revision 1.35  1999/01/20 23:39:20  mhayduk
+ *       Added broadcast parameter to wbiosReportDataBurst.
+ *
+ *       Revision 1.34  1999/01/20 23:23:12  scotvold
+ *       R1.20 API CP Event changes.
+ *
+ *       Revision 1.33  1999/01/09 00:41:07  scotvold
+ *       R1.20 API changes.
+ *
+ *       Revision 1.32  1999/01/07 18:45:27  dfischer
+ *       Added wbiosReportMessageWaiting
+ *
+ *       Revision 1.31  1999/01/07 16:32:10  mhayduk
+ *       Added new wrapper calls: wbiosSystemSelection and
+ *       wbiosReportAccessMaxCapsuleSize.
+ *
+ *       Revision 1.30  1999/01/06 19:02:35  dfischer
+ *       Added EV_MAINTENANCE
+ *
+ *       Revision 1.29  1998/12/02 16:25:27  mhayduk
+ *       Updated to remove non-T53 structures and calls.
+ *
+ *       Revision 1.28  1998/12/02 01:51:30  scotvold
+ *       Added T53 guards for #include.
+ *
+ *       Revision 1.27  1998/12/02 00:12:51  scotvold
+ *       Added statistics.
+ *
+ *       Revision 1.26  1998/11/27 17:44:42  mhayduk
+ *       Cleaned up event names.
+ *
+ *       Revision 1.25  1998/11/27 00:34:25  dfischer
+ *       Added EV_DIALING_COMPLETE and EV_DIALING_CONTINUE
+ *
+ *       Revision 1.24  1998/11/26 23:35:26  mhayduk
+ *       Removed wbiosReportCallPageResponse().
+ *
+ *       Revision 1.23  1998/11/26 23:09:59  mhayduk
+ *       Remove wbiosReportSystemInfo().
+ *
+ *       Revision 1.22  1998/11/26 22:07:27  mhayduk
+ *       Added nwe API definitions for API doc rev. 1.12.
+ *
+ *       Revision 1.21  1998/11/03 01:15:00  guterman
+ *        Fixed typo in wbios function
+ *
+ *       Revision 1.20  1998/11/02 22:15:25  scotvold
+ *       Added Service Option/Multiplex Option record support.
+ *
+ *       Revision 1.19  1998/10/20 23:58:23  mhayduk
+ *       Added T53 support.
+ *
+ *       Revision 1.18  1998/09/22 18:44:57  tdaly
+ *       Added IS-95 analog mode support.
+ *
+ *       Revision 1.17  1998/09/11 16:22:48  scotvold
+ *       Handoff API changes.
+ *
+ *       Revision 1.16  1998/09/11 02:42:30  scotvold
+ *       Added return to Service Option Control API calls.
+ *
+ *       Revision 1.15  1998/08/17 23:06:26  scotvold
+ *       Added wbiosAcceptLongCodeChangeReq() call.
+ *
+ *       Revision 1.14  1998/08/14 23:50:28  scotvold
+ *       Added Data Burst support.
+ *
+ *       Revision 1.13  1998/08/13 00:15:20  scotvold
+ *       Added DTMF support.
+ *
+ *       Revision 1.12  1998/07/31 16:11:29  scotvold
+ *       wbiosSetCallHistParameter() change.
+ *
+ *       Revision 1.11  1998/07/27 17:19:55  scotvold
+ *       API change for wbiosServiceConfigurationValidation() and wbiosServiceOptionValidation().
+ *
+ *       Revision 1.10  1998/07/14 17:26:44  scotvold
+ *       Service Configuration Initiation, Transmitter Control, and RTC Traffic Type calls added.
+ *
+ *       Revision 1.9  1998/07/03 16:57:30  dfischer
+ *       New load
+ *
+ *       Revision 1.8  1998/06/12 14:50:38  scotvold
+ *       Updated for Release 0.07.
+ *
+ *       Revision 1.7  1998/06/10 22:58:04  scotvold
+ *       Traffic Channel API updates
+ *
+ *       Revision 1.6  1998/06/08 21:48:25  scotvold
+ *       Updated for Release 0.06.
+ *
+ * Revision 1.5  1998/05/27  17:16:28  scotvold
+ * Updated for Release 0.05.
+ *
+ * Revision 1.4  1998/05/01  18:13:54  scotvold
+ * Update for release 0.04
+ *
+ * Revision 1.3  1998/03/30  23:26:03  mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1  1997/11/06  17:49:24  mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef _WBIOS_H_
+
+  #define _WBIOS_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "systime.h"
+#include "longcode.h"
+#include "channel.h"
+#include "pilots.h"
+#include "Serv_cfg.h"
+#include "status.h"
+#include "layer2.h"
+#include "srbp_access.h"
+#include "register.h"
+#include "Msg_defn.h"
+#include "pch_msg.h"
+#include "stats.h"
+#include "ho_cf.h"
+#include "pswnam.h"
+#include "lmdapi.h"
+#include "valapi.h"
+#include "eng_idle.h"
+#include "psw_msgid.h"
+#include "css_msgid.h"
+#include "hlp_msgid.h"
+#include "uim_msgid.h"
+#include "lec_msgid.h"
+
+#ifdef MTK_CBP_SYNC_OPTIMIZE
+#include "hscapi.h"
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+
+#ifdef MTK_CBP_REL_OPTIMIZE
+#include "valpswapi.h"
+#endif
+
+#include "xl3_em.h"
+#include "Msg_defn.h"
+#include "psw_dhl_trace.h"
+
+#ifdef MTK_DEV_C2K_IRAT
+#include "mspm_public_api.h"
+#endif /* MTK_DEV_C2K_IRAT */
+
+/*****************************************************************************
+ * Defines
+ ****************************************************************************/
+
+
+/* Call Processing Response Types */
+#define CP_RSP_BURST_DTMF             1
+#define CP_RSP_CONT_DTMF_ON           2
+#define CP_RSP_CONT_DTMF_OFF          3
+#define CP_RSP_DATA_BURST             4
+#define CP_RSP_DATA_BURST_SENT        5
+#define CP_RSP_FLASH                  6
+#define CP_RSP_VP                     7
+#define CP_REJ_INVALID_STATE          8
+#define CP_REJ_TC_TXQ_FULL            9
+#define CP_REJ_FC_ERROR               10
+#define CP_REJ_ORDER_ERROR            11
+#define CP_REJ_FMT_OVERFLOW           12
+
+/* Handoff Types */
+#define HO_IDLE_SAME_SYSTEM           1
+#define HO_IDLE_NEW_SYSTEM            2
+#define HO_SOFT                       3
+#define HO_HARD                       4
+#define HO_TC_TO_AVC                  5
+
+/* Service Configuration Request */
+#define SC_REQ_SERV_CFG               1
+#define SC_REQ_SERV_OPT               2
+#define SC_REQ_SERV_CTL               3
+
+/* Service Configuration Response */
+#define SC_RSP_SERV_CFG_REQ           1
+#define SC_RSP_SERV_OPT_REQ           2
+#define SC_RSP_SERV_CTL_REQ           3
+#define SC_IND_SERV_CFG_COMPLETE      4
+#define SC_REJ_BS_REJECT              5
+#define SC_REJ_INVALID_STATE          6
+#define SC_REJ_TC_TXQ_FULL            7
+#define SC_REJ_FC_ERROR               8
+#define SC_REJ_SNM_ERROR              9
+#define SC_REJ_NO_CONN                10
+#define SC_REJ_FMT_OVERFLOW           11
+
+/* These macros specify the operation of AMPS Idle Mode Processing */
+#define FOCC_IDLE_MODE_DISABLE 0
+#define FOCC_IDLE_MODE_ENABLE  1
+
+/* These macros are used to control the AMPS RSSI mechanism */
+#define RSSI_FOR_DISPLAY_ONLY    0
+#define RSSI_FOR_NORMAL_SCANNING 1
+
+#define MAX_SID_NID_PAIRS 20
+#define MAX_IMSI_T_S_SIZE 5
+
+#define NO_SERVICE_TIMEOUT 60000L
+/* Traffic channel message transmission priority levels */
+typedef enum
+{
+    PRIORITY_LOW = 0,
+    PRIORITY_MEDIUM,
+    PRIORITY_HIGH
+} Priority;
+
+/*
+ *  IS-95B Authentication Data
+ */
+typedef struct {
+    kal_uint32 A_KEY[2];
+    kal_uint8 SSDa[8];
+    kal_uint8 SSDb[8];
+} cpIS95AuthParms;
+
+/*   NAM values requiring.
+ *   Parameter Change Registration
+ */
+typedef struct {
+    kal_uint8 slotCycleIndex;
+    kal_uint8 scm;
+    kal_bool  mobTermHome;
+    kal_bool  mobTermForSid;
+    kal_bool  mobTermForNid;
+} cpPcrParms;
+
+/* Forward SCH Assignments */
+typedef struct
+{
+    kal_uint16          pilotPn;
+    kal_uint16          forSchCcIndex;
+    kal_uint8           qofMaskIdSch;
+} cpSupShoRec;
+
+typedef struct
+{
+    kal_uint8           forSchId;
+    SchRateIndex    forSchRate;
+    kal_uint8           forSchDuration;
+    WbiosSystime    forSchActionTime;
+    kal_uint8           numSupSho;
+    cpSupShoRec     supSho[ CP_MAX_SUP_SHO ];
+} cpForSchRec;
+
+typedef struct
+{
+    kal_uint8       schId;
+    kal_uint8       fer;
+    kal_int16       initSetpt;
+    kal_uint8       minSetpt;
+    kal_uint8       maxSetpt;
+} cpFpcParams;
+
+typedef struct
+{
+    kal_bool            fpcPriChansIncl;
+    kal_uint8           fpcPriChans;
+    kal_uint8           pilotGatingUseRate;
+    kal_bool            forSchFerRep;
+    kal_uint8           numForSch;
+    cpForSchRec     forSch[ CP_MAX_FOR_SCH ];
+    kal_bool            fpcSchIncl;
+    kal_uint8           fpcModeSch;
+    kal_uint8           fpcSecChan;
+    kal_uint8           fpcSchInitSetptOp;
+    kal_bool            fpcThreshSchIncl;
+    kal_uint8           fpcSetptThreshSch;
+    kal_uint8           numSup;
+    kal_bool            fpcSchInitSetptIncl;
+    cpFpcParams     fpcSchSetpt[ CP_MAX_FOR_SCH ];
+} cpForSchL1dAssign;
+
+
+typedef struct
+{
+    kal_bool            droppingFchSchPilot;
+    kal_uint8           numForSch;
+    kal_uint8           numSupSho[ CP_MAX_FOR_SCH ];
+    cpSupShoRec     supSho[ CP_MAX_FOR_SCH ][ CP_MAX_SUP_SHO ];
+} cpForSchL1dConfigUpdate;
+
+
+/* Reverse SCH Assignments */
+typedef struct
+{
+    kal_uint8           revSchId;
+    kal_uint8           revSchDuration;
+    WbiosSystime    revSchActionTime;
+    SchRateIndex    revSchRate;
+    kal_uint8           revWalshId;
+    kal_int16           pilotRefLevel;
+    kal_int16           rschPower;
+}  cpRevSchL1dRec;
+
+
+typedef struct
+{
+    kal_uint8           revSchDtxDuration;
+    kal_uint8           numRevSch;
+    cpRevSchL1dRec  revSchRec[ CP_MAX_REV_SCH ];
+} cpRevSchL1dAssign;
+
+typedef struct {
+    kal_uint16 FIRSTCHP;
+    kal_uint16 HOME_SID;
+    kal_uint8  EX;
+    kal_uint8  COUNT;
+    kal_uint8  SLOTTED_MODE;
+    kal_uint8  IMSI_M_CLASS;
+    kal_uint8  IMSI_M_ADDR_NUM;
+    kal_uint16 MCC_M;
+    kal_uint8  IMSI_M_11_12;
+    kal_uint8  IMSI_M_S[5];
+    kal_uint8  ACCOLC;
+    kal_uint8  LOCAL_CONTROL;
+    kal_uint8  MOB_TERM_HOME;
+    kal_uint8  MOB_TERM_FOR_SID;
+    kal_uint8  MOB_TERM_FOR_NID;
+    kal_uint8  MAX_SID_NID;
+    kal_uint8  STORED_POS_SID_NID;
+    kal_uint16 SID[MAX_SID_NID_PAIRS];
+    kal_uint16 NID[MAX_SID_NID_PAIRS];
+    kal_bool   Updated;
+} IS95NAMParms;
+
+typedef struct {
+    kal_uint8 IMSI_T_CLASS;
+    kal_uint8 IMSI_T_ADDR_NUM;
+    kal_uint16 MCC_T;
+    kal_uint8 IMSI_T_11_12;
+    kal_uint8 IMSI_T_S[MAX_IMSI_T_S_SIZE];
+    kal_bool Updated;
+} IS95IMSI_TParms;
+
+typedef struct
+{
+    kal_uint8             revSchId;
+    kal_uint8             revSchRate;
+    kal_uint8             revWalshId;
+} cpRevSchConfigRec;
+
+typedef struct
+{
+    kal_uint8             numRevSch;
+    cpRevSchConfigRec revSchConfigRec[ CP_MAX_REV_SCH ];
+} cpRevSchConfigUpdate;
+
+
+/* R-CQICH Gain level */
+typedef enum
+{
+    RCQICH_GAIN_LOW = 0,
+    RCQICH_GAIN_HIGH
+} RCqichGainLevel;
+
+
+/*****************************************************************************
+ * WBIOS prototypes
+ ****************************************************************************/
+
+  /* Distance Based registration */
+  kal_bool wbiosDistanceBasedReg(kal_int32 baseLat,kal_int32 baseLatRg,kal_int32 baseLong,
+                   kal_int32 baseLongReg,kal_uint16 distance);
+  /* ESN & NVM Interface function prototypes */
+  void wbiosRetrieveChannel (SysBandChannelT *channel, kal_uint8 index);
+  void wbiosSaveChannel(SysBandChannelT *channel);
+  void wbiosSetReturnChannel (SysBandChannelT *channel, kal_bool withSyncCh);
+  void wbiosSetSSDA(kal_uint8 *ssda);
+  void wbiosSetSSDB(kal_uint8 *ssdb);
+  kal_bool wbiosInitializeAkey(kal_uint32 *a_key);
+  void wbiosSetCallHistParameter(kal_uint8 count);
+  void wbiosSetRand(kal_uint32 rand);
+  kal_uint8* wbiosGetPtrToPRL(void);
+  void wbiosSetSIDNIDList(SidNidList *entry);
+  void wbiosSetTMSIAssignment(kal_uint8 len,kal_uint8 *zone,kal_uint32 code,kal_uint32 expTime);
+  void wbiosSetZoneList(ZoneList *entry);
+  void wbiosDeleteZoneList(void);
+  void wbiosDeleteSIDNIDList(void);
+  void wbiosSetBaseDistanceRegInfo(kal_int32 baseLat,kal_int32 baseLong, kal_uint16 distance);
+
+  /* Call Progression Interface function prototypes */
+  void wbiosReportAlert(FORInfoData *alertData);
+  void wbiosReportMessageWaiting(kal_uint8 numMsgs);
+  void wbiosReportBurstDTMF( const kal_uint8     numOfDigits,
+                             const kal_uint8     dtmfOnLength,
+                             const kal_uint8     dtmfOffLength,
+                             const char*     digits );
+  void wbiosReportCPEvent(kal_uint8 event, kal_bool inclSO, PswServiceOptionT SO);
+  void wbiosReportCPResponse(kal_uint8 response, kal_uint8 request);
+  void wbiosReportCPStatus(ValRptCpStatusMsgT *status);
+  void wbiosReportDataBurst(kal_uint8 msgNumber, kal_uint8 burstType,kal_uint8 numMsgs,
+                           kal_uint8 numFields,kal_uint8* data);
+  void wbiosReportBroadcastDataBurst(kal_uint8 addrLen, kal_uint8 *addr, kal_uint8 msgNumber,
+                                     kal_uint8 burstType, kal_uint8 numMsgs, kal_uint8 numFields,
+                                     kal_uint8* data);
+  kal_bool wbiosSccBcastConfigured(void);
+  kal_bool wbiosSccBcastExpected(kal_uint8 burstType, kal_uint8 addrLen, kal_uint8 *addr);
+  void wbiosReportFeatureNotification(FORInfoData *featureData);
+  void wbiosReportFlash(FORInfoData *ftcFlashData);
+  void wbiosReportHandoff(kal_uint8 type, HOTCReport* hoTCReport);
+  void wbiosReportLock(kal_uint8 reason);
+  void wbiosReportMaintenanceRequired(kal_uint8 reason);
+  void wbiosReportPacketZoneID(kal_uint8 zone);
+  void wbiosReportNetworkPRev(kal_uint8 pRev);
+  void wbiosReportNetworkPRevAndPRevInUse(kal_uint8 pRev, kal_uint8 pRevInUse);
+  void wbiosReportRegistrationAccept(kal_bool roamIndPresent, kal_uint8 roamInd);
+  void wbiosReportRegistrationReject(void);
+  void wbiosReportStartContinuousDTMF(char digit);
+  void wbiosReportStopContinuousDTMF(void);
+  void wbiosReportSystemTime(kal_uint8 *sysTime,kal_uint8 lpSec,kal_uint8 ltmOff,kal_uint8 dayLt);
+  void wbiosReportUnlock(void);
+  void wbiosSystemError(kal_uint16 error);
+  kal_bool wbiosSccIsServOptionAttributeAvailable( const kal_uint16 servOption );
+  ServiceConfiguration* wbiosSccGetDefaultServiceConfiguration( const kal_uint16 servOption );
+  ServiceConfiguration* wbiosSccGetPrefServiceConfiguration( kal_uint16 servOption );
+
+
+  /* Slotted Sleep Mode */
+  void wbiosSlottedModeEnable(kal_uint16       pgslot,
+                              kal_uint8        slotCycleIndex,
+                              kal_bool         qpchEnabled,
+                              kal_uint8        QPAGECHs,
+                              kal_bool         QPCH_RATEs/*,
+                              kal_uint8        QPCH_POWER_LEVEL_PAGEs*/);
+
+  void wbiosSleep(WbiosSystime sysTime, kal_uint16 PIPosition, SleepType SleepType,
+                  QpchTransPwr QpchRatioIdx, kal_uint16 TargetPN);
+  void wbiosSlottedModeDisable(void);
+  void wbiosSrchResultsComplete(void);
+  void wbiosWakeup(WakeModeT wakeMode);
+  void wbiosOosaWakeup(void);
+
+   /* Timer control */
+  kal_int16 wbiosSetTimer(kal_uint32 duration);
+  void wbiosSetTATimer(kal_uint32 duration);
+  void wbiosSetUimTimer(kal_uint32 duration);
+  void wbiosKillTimer(kal_int16 timerId);
+  void wbiosKillTATimer(void);
+  void wbiosKillUimTimer(void);
+
+  /* Channel Acquisition */
+  void wbiosPilotAcquireAbort(void);
+  void wbiosPilotAcquireStart(SysBandChannelT *channel);
+  void wbiosL1dPswRfReleaseReq(void);
+  void wbiosOutOfServiceAreaSleep(kal_uint16 tenthsOfSeconds);
+  void wbiosOosaContSleepReq(kal_uint32 sleepDuration);
+  void wbiosSyncToSystemTime(kal_uint16 frame, kal_uint16 pilotPN, Longcode *lcState,
+                             SyncMsgSysTimeType* sysTime);
+  void wbiosSyncAcquireStart(void);
+  void wbiosSyncAcquireAbort(void);
+  void wbiosL1dSyncMsgRecvd(void);
+
+  /* Pilot monitoring */
+  void wbiosCDMACandFreqSearchParm(CFSet* set, CFSearchParms* parms);
+  void wbiosCDMACandFreqSearchStart( WbiosSystime* actionTime, kal_uint8 SearchOffset,
+    kal_uint8 totalOffTimeFwd, kal_uint8 totalOffTimeRev );
+  void wbiosSCNNServiceConfiguration(NNServiceConfiguration* servCfg,
+                                   WbiosSystime* actionTime);
+
+  void wbiosIdlePilotSet(kal_int16 pilotSeq, IdlePilotSet *set, kal_uint16 pilotInc);
+  void wbiosIdleChangePilotSet (IdleChangePilotSet*set);
+  void wbiosPilotSearchWindow(PilotSearchWindow *window);
+  void wbiosPilotSet(kal_int16 pilotSeq, PilotSet *set, kal_uint16 pilotInc);
+  void wbiosAfltPilotSet(kal_uint16 seqNum, kal_uint16 refPN, kal_int16 refTimeCrrct,
+                         kal_uint8 numPilots, AfltPilotSetList *afltSet);
+  void wbiosAfltAbortPilotSet(kal_uint16 seqNum);
+
+  /* Paging Channel */
+  void wbiosPageMonitorStart(SysBandChannelT *channel, PageChRate rate,
+                   kal_uint8 pagech, kal_uint16 pilotPN, Longcode *lcMask);
+  void wbiosPageMonitorStop(void);
+
+  /* Create wbios interface for BCCH */
+  void wbiosBCCHMonitorStart( const SysBandChannelT         *pChannel,
+                              const kal_uint16              pilotPn,
+                              const kal_uint8               walshCode,
+                              const BcchRate            brat,
+                              const kal_bool                tdSupported,
+                              const Sr1TdModes          tdMode,
+                              const Sr1TdPowerLevel     tdPwrLevel,
+                              const kal_uint8               crat,
+                              const Longcode            *pLcMask );
+
+  void wbiosBCCHMonitorStop( void );
+
+  /* Create wbios interface for FCCCH */
+  void wbiosFCCCHMonitorStart( const kal_uint16 pilotPn,
+                               const kal_uint8 walshCode,
+                               const kal_uint8 crat,
+                               const FccchRate  dataRate,
+                               const Longcode *pLcMask );
+
+  void wbiosFcschMonitorStop( void );
+
+  /* Access Channel Message */
+  void wbiosAccessMessageSend(AccessMsgInfo *info, kal_bool firstProbe, WbiosSystime delayTime);
+  void wbiosAccessMessageAbort(WbiosSystime sendTime, WbiosSystime L1dAccessCompleteTime, kal_uint8 pamSize);
+  void wbiosReportAccessMaxCapsuleSize(kal_uint8 size);
+  kal_bool wbiosRequestVoicePrivacyIndication(kal_uint16 serviceOption);
+
+  /* Traffic Channel */
+  void wbiosLongCodeChange(Longcode* mask, WbiosSystime* actionTime);
+  kal_bool wbiosAcceptLongCodeChangeReq(kal_bool lcPrivate);
+  void wbiosPUFProbeAbort(void);
+  void wbiosPUFProbeSend(SysBandChannelT* channel, kal_uint8 setupSize, kal_uint8 pulseSize,
+                         WbiosSystime* actionTime, kal_uint8 PUFPowerOffset);
+  void wbiosReverseMultiplexParametersGet (void);
+  void wbiosMultiplexParametersGet(StatCounterT statCounter);
+  void wbiosResetLmdMuxStatCounts(void);
+
+  void wbiosMultiplexParametersSet(LmdSetStatCntMsgT *msgPtr);
+  MultiplexOptionInfo*  wbiosSCGetMultiplexOptionInfo(void);
+  ServiceConfiguration* wbiosSCGetServCfgNoConnections(kal_uint16 serviceOption);
+  const ServiceOptionInfo*    wbiosSCGetServiceOptionInfo(void);
+
+  void wbiosSCReportServiceNegotiationMode(kal_bool mode);
+  void wbiosSCServiceConfiguration(ServiceConfiguration* servCfg,
+                                   WbiosSystime* actionTime);
+
+  ServiceConfiguration* wbiosSCServiceConfigurationInitiation (void);
+  void wbiosSCServiceConfigurationResponse(kal_uint8 reason, kal_uint8 response);
+
+  SCResponse wbiosSCServiceConfigurationValidation(
+                SCValidationAction validationAction,
+                                               ServiceConfiguration* servCfg);
+
+  RejectReason wbiosSCServiceOptionControlMessage(kal_uint8 conRef,
+                                   kal_uint16 serviceOption, kal_uint8 length,
+                                   kal_uint8* ctlRec, WbiosSystime* actionTime);
+
+  RejectReason wbiosSCServiceOptionControlOrder(kal_uint8 ordq,
+                                                WbiosSystime* actionTime);
+
+  SCResponse wbiosSCServiceOptionValidation(SysServiceOptionT* serviceOption);
+
+  kal_bool wbiosSCValidateNumSup (kal_bool direction, kal_uint8 numSup);
+
+  void wbiosTrafficChannelStart(PhyInitCfg* phyInitCfg,
+                                WbiosSystime* actionTime);
+
+
+  void wbiosPDCHParams
+  (
+    const   WbiosSystime* pActionTime,
+    kal_bool    trafficInitSetup,
+    kal_bool    forPdchParamsIncl
+  );
+  void wbiosReversePowerSet(PhyInitCfg* phyInitCfg, kal_bool rpcIncl, kal_bool onTCH);
+
+
+  void wbiosPreambleOn(void);
+
+  void wbiosSendPwrCtlParms( PCNPMData* PCNPMDataPtr );
+
+  void wbiosResourceReq( kal_bool ContinuousPilot,
+                   kal_uint8   PilotGatingRate );
+
+  void wbiosTrafficChannelSoftHandoff(PhySHOCfg* phySHOCfg,
+                                      WbiosSystime* actionTime);
+  void wbiosTrafficChannelHardHandoff(PhyHHOCfg* phyHHOCfg,
+                                      WbiosSystime* actionTime);
+
+  void wbiosTrafficChannelStop(void);
+  void wbiosTrafficChannelSendMessage(kal_uint8* data, kal_uint8 length,kal_uint8 retryCount);
+  /*void wbiosTrafficChannelPowerStep(kal_uint8 pwrCntlStep);
+  */
+  void wbiosForPowerControlParams(PCNMData* pcnmData);
+  void wbiosRadioConfigurationParams(void);
+  kal_uint8 wbiosforFchBlankingDutyCycle(void);
+
+  void wbiosSupplementalChannelAssignment(SupCodeCfg* supCodeCfg,
+                                          ForSupCodeList* forSupList,
+                                          WbiosSystime* forStartTime,
+                                          WbiosSystime* revStartTime);
+  void wbiosTransmitterControl(TXControl txControl);
+  void wbiosPreambleOff(void);
+  void wbiosFDSCHAcqInd(void);
+  void wbiosReportCQA (kal_bool alarm);
+  void wbiosRschPowerSet(kal_int16 pilotRefLevel, kal_int16 rschPower);
+
+  void wbiosE911Mode(kal_bool mode);
+  void wbiosOrigFinished(void);
+
+  void wbiosReorigCall(void);
+#ifndef MTK_CBP_REL_OPTIMIZE
+  void wbiosReorigPktCall(void);
+#else
+  void wbiosVsCntdIndMsg(void);
+  void wbiosVsRelIndMsg(kal_bool isMoCall, ValPswCallEndReasonT eReason);
+  void wbiosReleaseCall(kal_uint8 reason, kal_bool mtc);
+#endif
+  void wbiosReportBSCoOrd(kal_uint16 baseID, kal_int32 baseLAT, kal_int32 baseLONG);
+  void wbiosReportPrlInfo(NamNumber namNumber, PRL_HEADER* ptrToPrl);
+
+  void wbiosSetAkey(kal_uint32 *akey);
+  void wbiosGetIS95Auth(cpIS95AuthParms* out);
+  void wbiosGetIS95NAMParms(IS95NAMParms* namParms);
+  void wbiosGetIS95IMSIParms(IS95IMSI_TParms* imsiParms);
+  void wbiosDumpPchMsg(kal_uint8 length, kal_uint8 *msg);
+  void wbiosDumpSyncMsg(kal_uint8 length, kal_uint8 *msg);
+  void wbiosDumpFtcMsg(kal_uint8 length, kal_uint8 *msg);
+  void wbiosReportNamInfo(PswIs95NamT* ptrToNam);
+  void wbiosPSInfoRsp(kal_uint8 SCC, kal_uint8 type, kal_uint8 State);
+
+  /* High Speed Packet Data Service Calls */
+  void wbiosResourceUpdate( const WbiosSystime* pActionTime,
+                            const kal_uint8 chInd,
+                            const kal_bool    srvcConfigNonNegInc
+                          );
+
+  void wbiosRsrDealloc( const WbiosSystime* pActionTime,
+                        const kal_uint16 channels,
+                        const kal_uint8 pilotType,
+                        const kal_uint8 pilotGatingRate,
+                        const kal_bool  switchParamsInc,
+                        const kal_uint8 numSoftSwitchingFramesChm,
+                        const kal_uint8 numSofterSwitchingFramesChm
+                       );
+
+  void wbiosRsrAlloc( const WbiosSystime*,
+                      const kal_uint16 channelType,
+                      const kal_uint8  fpcPriChan );
+
+  void wbiosForSch( const cpForSchL1dAssign* );
+  void wbiosRevSch( const cpRevSchL1dAssign* );
+  void wbiosForSchConfigUpdate( const cpForSchL1dConfigUpdate* );
+  void wbiosRevSchConfigUpdate( const cpRevSchConfigUpdate* );
+  void wbiosAccessInProg(kal_bool access
+#ifdef MTK_DEV_C2K_IRAT
+                       , kal_bool relRfRes
+#endif
+                        );
+  void wbiosSetPaModeChanged(kal_bool Changed);
+  void wbiosRptDataPrearrMode(kal_uint8 paMode);
+  void wbiosSetOrigAbortReason(kal_uint8 reason);
+  void wbiosL1dAlternatePilot(kal_uint16 AltPhase, kal_uint16 PN);
+  void wbiosEnterFlyMode(kal_uint16 tenthsOfSeconds);
+  void WbiosReportMccMnc(kal_uint16 MCC, kal_uint8 IMSI_11_12
+#ifdef MTK_CBP
+          , kal_uint16 AIMCC
+#endif
+          );
+
+  /* PDCH */
+  void wbiosRateChange ( const WbiosSystime*  pActionTime,
+                         const RATCHGMData*   pRATCHGMData );
+  void wbiosCdmaBandSupportedQuery(void);
+
+#if defined(MTK_DEV_SLT)
+  void wbiosReportSltVerifyResult(kal_bool result);
+#endif
+
+#endif  /* _WBIOS_H_ */
+
+
+  void wbiosCssSelectReq(kal_uint8 indication);
+  void wbiosCssValidateReq(kal_uint16 sid, kal_uint16 nid, SysBandChannelT* bandCh, kal_uint16 pilotStrength, kal_int16 rxPower);
+  void wbiosCssMccMncValidateReq(kal_uint16 mcc, kal_uint16 imsi_11_12, SysBandChannelT* bandCh, kal_uint16 pilotStrength, kal_int16 rxPower);
+  void wbiosCssUpdateLastSavedEcIoRxPwr(kal_uint16 pilotStrength, kal_int16 rxPower);
+  void wbiosCssUpdateActiveNam(kal_uint8 ActiveNam);
+  void wbiosCssIndicateInService(void);
+  void wbiosCssSetCallPending(kal_bool CallPending, kal_bool IsVoice);
+  void wbiosCssSysParmsUpdate(kal_uint16 sid, kal_uint16 nid);
+  void wbiosCssOosaWakeupInd(void);
+  void wbiosCssE911ModeInd(kal_bool e911);
+  void wbiosCssEventReport(Css1xRptCpEventT event);
+  void wbiosCssRedirInd(kal_bool Redir);
+  void wbiosCssOosaSleepCnf(void);
+  void wbiosCssPrlUpdate(void);
+  void wbiosCss1xSaveLastSysInMru(void);
+  void wbiosCssClearMru(void);
+  void wbiosCss1xDoOverlapInd(kal_uint8 overLap);
+#ifdef LGT_EXTENSIONS
+  void wbiosCss1xRegStatusInd(kal_uint8 regStatus);
+#endif
+  void wbiosReportDialComplete(OrigParms *origP);
+  void wbiosReportOverheadCurrent(void);
+  void wbiosReportCPEventToVal (kal_uint8 event);
+  void wbiosReportServiceConfig(void);
+  void wbiosTransmitInfo(void);
+  void wbiosL1dInit(void);
+  void wbiosL1dReset(void);
+  void wbiosReportExistenceInfo(kal_bool existence);
+  void wbiosReportCurrServOption (kal_bool inCallState, kal_uint16 serviceOption);
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+  void wbiosReportEncryptVoiceRsp(kal_bool result, EncryptRspTypeT reason);
+#endif
+
+#ifdef MTK_DEV_C2K_IRAT
+  void wbiosReportIratMcc(void);
+  void wbiosReportIratMccChange(kal_uint16 MCC,kal_bool enable);
+  void wbiosReportIratPilotInfo(HOTCPilot *rec);
+  void wbiosReportIratWeakSysInd(HOTCPilot *rec);
+  void wbiosReportIratEUtranNghbrInfo(kal_bool EUTranAvail, PchATIM *msg);
+  void wbiosReportCellIdInd(kal_uint16 mcc, kal_uint16 mnc);
+
+#if defined(MTK_CBP_SYNC_OPTIMIZE)
+void wbiosSib8TimingSyncReq(void);
+#endif /* MTK_CBP_SYNC_OPTIMIZE */
+
+  void wbiosSetHscProtectAntennaStatus(kal_bool protectStatus);
+  void wbiosL1dProtectAntennaStart(ProtectProcT   protectProc);
+  void wbiosL1dProtectAntennaStop(void);
+  void wbiosL1dSetRatStatus(kal_bool active);
+  void wbiosCssRsvasSuspendReq(void);
+  void wbiosCssRsvasDoVrtlSuspReq(void);
+  void wbiosCssRsvasDoResumeReq(void);
+  void wbiosCssRsvasVrtlResumeReq(void);
+  void wbiosCssRsvasResumeReq(void);
+  void wbiosCssRsvasEventReport(CssRsvasEventT cssRsvasEvent);
+  void wbiosHlpRsvasAbortReq(kal_bool TriggeredByCs);
+  void wbiosIdpRsvasServiceOccupyInd(void);
+  void wbiosIdpRsvasServiceOccupyCnf(kal_bool result);
+  void wbiosTrafficChannelStopForRsvas(kal_bool isSuspend);
+  void c2kLteCsfbReq(c2k_lte_csfb_req_type_enum csfb_req_type);
+  void c2kLteCsfbStopReq(c2k_lte_csfb_stop_req_type_enum csfb_stop_req_type);
+  void rsvasCasProtectCsServiceReq(kal_bool is_protect);
+  void wbiosValReportC2kRsvasEvent(ValRsvasEventT event);
+  void wbiosErrc1xPsConnStatusInd(kal_bool psConnectionStatus);
+  void wbiosL1dEsrProtect(kal_bool protect);
+  void wbiosL1dRakeDdlReq(void);
+  void wbiosPswCssSysAcqReq(CssForceInitReasonT reason);  
+  void wbiosRsvasAsSessionStartReq(mspm_sim_index_enum simIndex, mspm_procedure_enum procedure, kal_uint32 ackId);
+  void wbiosRsvasAsSessionEndNtf(mspm_sim_index_enum simIndex, mspm_procedure_enum procedure);
+#endif /* MTK_DEV_C2K_IRAT */
+
+void wbiosL1dDeactiveReq(void);
+void wbiosIdpPsw1xrttPagePositionChangeInd(void);
+
+void wbiosRsvasOccupyIndMsg(void);
+void wbiosRsvasResumeReqMsg(void);
+void wbiosRsvasVirtualSuspendReqMsg(void);
+void wbiosPswLocalReleaseMsg(void);
+void wbiosInternalPowerMsg(kal_bool powerUp);
+
+void PswSendEltMsg(msg_type msg_id, local_para_struct *log_msg_ptr);
+void PswSendIRatMsg(msg_type MsgId, void* MsgBufferP, kal_uint32 MsgSize);
+void wbiosHsc1XPriorityBoot(kal_bool Control);
+
+void PswProcessNvRamReadCnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+void cpSetRedirectionRec(ServiceRedirData *rec);
+ServiceRedirData* cpGetRedirectionRec(void);
+
+#ifdef __C2K_RF_HOPPING_SUPPORT__
+void cpReportNoActiveFreq(void);
+void cpReportActiveFreq(SysCdmaBandT activeBand, kal_uint16 activeFreq);
+void cpReportActiveNghborInIdle(HONghbrIdleHandoffList* idleHORec);
+void cpReportActiveNghborInTraffic( SysCdmaBandT neighBand, kal_uint16 neighFreq);
+void RttRfHoppingNotify(kal_uint32 ReportMask);
+#endif
+
+#ifdef SLT_PAGING_PRIOR_OPT
+void wbiosL1dPagingPriorOpt(kal_bool enable);
+#endif
+
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\1 2012-07-26 06:28:03 GMT cshen
+** cbp80_cshen_scbp10098**/
+/**Log information: \main\Trophy_SO73\1 2013-07-10 06:59:45 GMT gdeng
+** HREF#0000 SCBP#11784**/
+/**Log information: \main\Trophy\1 2013-07-17 08:12:49 GMT cshen
+** href#2222**/
+/**Log information: \main\Trophy\Trophy_yanliu_handroid2028\1 2013-08-30 07:03:36 GMT yanliu
+** HANDROID#2028: check in SD's MT slotted optimization**/
+/**Log information: \main\Trophy\2 2013-08-30 07:07:35 GMT yanliu
+** HANDROID#2028 merged: check in SD's MT slotted optimization**/
+/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:26:48 GMT xding
+** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
+/**Log information: \main\Trophy\3 2013-12-10 08:35:23 GMT jzwang
+** href#22331:Merge MMC latest implementation from Qilian branch.**/
+
diff --git a/mcu/interface/protocol/as_c2k/1xrtt/xl3_em.h b/mcu/interface/protocol/as_c2k/1xrtt/xl3_em.h
new file mode 100644
index 0000000..4f5979c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/1xrtt/xl3_em.h
@@ -0,0 +1,115 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+/****************************************************************************
+ *
+ * Module:     xl3_em.h
+ *
+ * Purpose:    xl3 engineer mode definitions and prototypes.
+ *
+ ****************************************************************************/
+
+#ifndef _XL3_EM_H_
+#define _XL3_EM_H_
+
+#ifdef __MODEM_EM_MODE__
+
+#ifndef MTK_PLT_ON_PC
+#define __XL3_EM_MODE__  1
+#endif
+
+#include "em_public_struct_xl1.h"  /* use EM_SYS_MAX_ACTIVE_LIST_PILOTS */
+#include "em_public_struct_xl3.h"
+#include "sysfrc.h"
+#include "eng_idle.h"
+#include "Msg_defn.h"
+
+void Xl3ServingCellInfoInit(void);
+em_1x_slotted_event_enum Xl3EmSlottedEventConvertFromSleepCmd(SleepType inter_slttted_event);
+em_1x_slotted_event_enum Xl3EmSlottedEventConvertFromWakeMode(kal_uint8 status, WakeModeT wake_mode);
+void Xl3PagingInfoInit(void);
+void Xl3SystemSearchInfoInit(void);
+kal_bool Xl3InPagingSlots(void);
+void Xl3StartOrStopRcvPagingInNSM(void);
+void Xl3StartRcvPaging(kal_uint8 wake_type, kal_bool pi_off);
+void Xl3SetPagingMatchFlag(kal_bool matched, kal_uint8 mismatchStep, kal_uint16 match_so);
+void Xl3EmSetQpchStatus(QpchPiStat pi_status);
+void Xl3SetQpchHoInfo(kal_uint16 dest_pn);
+void Xl3AddPchMsgState(kal_uint8 rcv_frame_num,
+                       kal_uint8 valid_pch_msg_num,
+                       kal_uint8 bad_crc_num,
+                       kal_uint8 middle_sci_num,
+                       kal_uint8 invalid_frame_num);
+void Xl3StopRcvPaging(void);
+void Xl3CrcInfoInit(void);
+void Xl3UpdateFtcCrcInfo(kal_bool ftc_crc_quality);
+
+void Xl3SetSystemSearchIndication(kal_uint16 indication);
+void Xl3SetSystemSearchRFGrantedTime(void);
+void Xl3SetSystemSearchChannelSDTime(kal_uint16 band, kal_uint16 channel);
+void Xl3SetSystemSearchOOSATime(void);
+void Xl3SetSystemSearchWakeupTime(void);
+void Xl3SetSystemSearchPATime(void);
+void Xl3SetSystemSearchSATime(void);
+void Xl3SetSystemSearchTCTime(void);
+void Xl3HoInfoInit(void);
+void Xl3SetHoInfoEcIo(kal_uint8 src_ecio, kal_uint8 dest_ecio);
+void Xl3SetHoInfoCommonAset(kal_uint16 src_band, kal_uint16 src_channel, kal_uint16 src_pn,
+                            kal_uint16 dest_band, kal_uint16 dest_channel, kal_uint16 dest_pn);
+void Xl3SetHoInfoTrafficAset(kal_uint16 src_band, kal_uint16 src_channel,
+                             kal_uint16 dest_band, kal_uint16 dest_channel, FTCActiveList* active);
+
+void Xl3EmUpdateReqMsg(local_para_struct *local_para_ptr);
+void Xl3SendEmXl3CpStatusInd(void);
+void Xl3SendEmXl3SlottedModeInfoInd(em_1x_slotted_event_enum slotted_event);
+void Xl3SendEm1xrttCallEventsInd(em_call_events_enum call_event, em_call_type_enum call_type);
+void Xl3SendEmC2kRsvasInfoInd(em_rsvas_event_enum event);
+void Xl3SendEmCpEventInd(em_cp_abnormal_event_enum Abnormal_event, em_1x_ho_event_enum Ho_event);
+void Xl3SendEmXl3PagingInfoInd(void);
+void Xl3SendEmXl3SetInfoInd(void);
+
+void Xl3SetEmXl3SystemSearchInfo(kal_bool searchSuccess);
+void Xl3SendEmXl3SystemSearchInfoInd(void);
+
+void Xl3SetCallFailReason(em_1xrtt_call_fail_reason_enum fail_reason);
+em_1xrtt_call_fail_reason_enum Xl3GetCallFailReason(void);
+void Xl3ResetCallFailReason(void);
+void Xl3SendEmXl3CallFailReasonInd(em_c2k_call_type_enum call_type);
+
+
+#endif/* __MODEM_EM_MODE__ */
+
+#endif/* _XL3_EM_H_ */
+