blob: df86965bfe149c5e8c3a8337610c59aececfbd29 [file] [log] [blame]
/*****************************************************************************
* 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_ */