[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
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_ */
+