📄 mn80.h
字号:
/*-------------------------------------------------------------------------
* Copyright (C) 2003 UTStarcom Telecom Co., Ltd.
* All rights reserved.
*
* Filename: Mn80.h
* Module:
* Description: none
* Version:
* History:
* Author Date Description
* ------------ --------- ---------------
* Sanyo Initial version
* Yang Yajiang 05/23/2003 Modify forARM( alignment problem )
*
*-------------------------------------------------------------------------*/
#ifndef _MN_H
#define _MN_H
#ifdef __cplusplus
extern "C" {
#endif
//#include "l1_exf80.h" /* #GRP-01 */
#include "sysdef.h"
#include "_Define.h"
#include "Mn80Sts.h"
#ifdef SIMU_ON_PC
#include "simu_define.h"
#endif
//#define NULL 0x00
#define NONE 0xFF
#define WAIT_RADIO 3
#define HOLD 2
#define END 0x0000
#define SRCH 0xFFFF
//Mn_state group , Added by chenxl
enum
{
PHS_PUBLIC_STS = 0,
PHS_PRIVATE_STS = 1,
PHS_PS2PS_STS = 2,
PHS_COMMON_STS = 3
};
//Added by chenxl
typedef enum
{
CALLMODE_OUT = 1,
CALLMODE_IN = 2,
CALLMODE_LOCREG = 3
}enumCALLMODE;
/* FEATURE DEFINION */
#define FEATURE_SEAMLESS 1 /*Seamless feature ID*/
#define FEATURE_POWER_OFF_REG 1 /*Power off registration subfeature ID*/
/*It also server as the feature mask bit*/
#define FEATURE_LOW_CS_PREFER 2 /*low power CS prefered subfeature ID*/
/*It also server as the feature mask bit*/
/* don't change it unless you're sure*/
#define TOTC309P 90
#define TORCHDIS 20
#define TOCCHSHT 18
#define TORETRY 5
#define TICCHMON (U2)0x81
#define TICSYNC (U2)0x82
#define TIACCALL (U2)0x85
#define TIACLOC (U2)0x86
#define TITC309P (U2)0x8A
#define TITCHFRE (U2)0x8B
#define TIHANDOV (U2)0x8C
#define TICCHEST (U2)0x96
#define TICCHSHT (U2)0x97
#define TIRETRY (U2)0x98
#define TIPAGE (U2)0x9B
#define TIWMONIT1 (U2)0x9D
#define PBS_RETRY13 13
#define SLEEP_MASK 0x03
#define BSLPREL 0
#define BSLPFORV 1
#define SLEEP_OFF 0xFF
#define MONITOR_LEAST 0x2c
#define CCHEST 0
#define CCHCAL 1
#define CCHINC 2
#define CCHLOC 3
#define J0_SNDCMP 0xA1
#define J0_DENTATU 0x04
#define OJ 0
#define MJ 1
#define BCD13 0x10
#define BCD13K 0x40
#define OHOME 0
#define OPUBLIC 1
#define MJIG 0x04
#define MOFFU 0x20
#define MSD 0x40
#define MGRP 0x80
#define ISYSINFO 0x31
#define ISYSOPT 0x3C
#define IINPPSNUM 0x01
#define IINPCDNUM 0x02
#define SON 25
#define SBY 0
#define LOW 1
#define MEDI 2
#define HIGH 3
#define PRIERR 0xF1
#define SEQERR 0xF2
#define PARERR 0xF3
#define DL_REL_STAT 0x01
#define DL_SET_STAT 0x04
#define N(X) (I2)(Sys_bcch[0][X][1])
#define NGROUP(X) (I2)((Sys_bcch[0][X][2] >> 4) & 0x0F)
#define NBS(X) (I2)(Sys_bcch[0][X][3] & 0x07)
#define NSG(X) (I2)((Sys_bcch[0][X][3] >> 3) & 0x07)
#define NOFSET(X) (I2)((Sys_bcch[0][X][4] >> 6) & 0x03) /* Noffset */
#define NPCH(X) (I2)((Sys_bcch[0][X][4] >> 3) & 0x07)
#define NSUB(X) (I2)(Sys_bcch[0][X][4] & 0x07)
#define NLOFSET(X) (I2)(Sys_bcch[0][X][5]) /* Noffset */
#define SLTNO(X) (I2)((Sys_bcch[0][X][6] >> 6) & 0x03) //absolute slot number
#define CNTCRY(X) (Sys_bcch[0][X][6] & 0x03)
#define ACCYCINT(X) (X ? ((Sys_hsinfo[5] & 0x0F) << 2) : ((Sys_psinfo[5] & 0x0F) << 2))
#define MAX_RETRY 0x04
#define NG_AREA_NUM 0x03
#ifdef SIMU_ON_PC /*zch for protocol simulator */
#pragma pack( push, mnheader,1)
#endif
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 *nxt;
U2 qno;
U1 msg[MSGDAT_SZ];
} M_MSB;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 *next_po;
U1 lst_len;
U1 msg_len;
U1 msg[L3_MSGSZ];
} M_MSB_L2;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U2 pno;
U2 event[8];
} MN_EVB;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U2 evt_code;
U2 pri_code;
void (*Module)();
} MN_EVENTREC;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 Csid[6]; /* CS-ID */
U1 Rssi;
U1 Gain;
U1 Endflg;
U1 Locflg;
U1 GrpFlg;
} MN_CCHMONREC;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 Csid[6]; /* CS-ID */
U1 GrpFlg;
U1 FreqNo;
U1 Kind;
} MN_REGULCS;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 CompFlg;
U1 GrpFlg;
U1 FrqNo;
U1 Retry;
} MN_LOCINF;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 Moni;
U1 Main;
} MN_CCH;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct {
U1 infCnt;
U1 mCnt;
U1 id[10];
U1 len[10];
U1 om[10];
} MN_INFTBL;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //added by chenxl 2003/8/13
{
U2 evt_cod;
U2 pri_cod;
U1* buf_adr;
U2 inf_len;
U1* inf_adr;
U1 add_dat;
U1 dmy3;
}L3_MN_EVT; //The event code struct in Sys_work[] , come from or send to MM , CC and RT.
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //added by chenxl 2003/8/13
{
U2 evt_cod;
U2 dl_typ;
U2 dl_id;
U2 dl_sou;
U1* msg_adr;
U2 add_dat[2];
}L3C_MN_EVT; //The event code struct in Sys_work[] , come from or send to L3
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //added by chenxl 2003/8/13
{
U2 evt_cod;
U2 null1;
U2 null2;
U2 add_dat;
U2 dont_care[4];
}L1_MN_EVT; //The event code struct in Sys_work[] , come from L1
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //Added by chenxl 2003/8/13
{
U2 evt_cod;
U2 ch; //SACCH/FACCH
U2 dmy;
U2 tr_req;
U1* msg_adr;
U2 evt1;
U2 evt2;
}L2_MN_EVT; //L2 will not dispatch the event to MNG directly , always relayed by L3C
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //added by chenxl 2003/8/13
{
U2 evt_cod;
M_MSB *msg_adr;
U2 add_dat;
U2 dont_care[4];
}PM_MN_EVT; //The event code struct in Sys_work[] , come from PM
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct { //added by chenxl
U2 evt_cod;
U2 pri_cod;
U1 msg_dat[6];
U1 dmy[6]; /* :***For 16bit CPU Changed By Y.Kawata ***/
} RT_MN_LCHEVT;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //added by chenxl
{
U2 tim_id;
U2 tim_info[7];
}MN_TIMER_EVT; //The event code struct in Sys_work[] , come from the MN Timer
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct //Added by chenxl
{
U2 in_evt[8]; // 0~15
U2 tsk_id; // 16,17
U2 out_evt[8]; // 18~33
M_MSB *msg_adr; //34~37
TEV_PRM_ST tim_inf;
}MN_SYSWRK;
#ifndef SIMU_ON_PC
__packed
#endif
typedef struct{
BYTE SlotInf;
BYTE Rssi;
BYTE Csid[6];
BYTE RxData[8];
} CCH_MON_INF;
//#ifdef SIMU_ON_PC
#define CCH_MON_BUF_MAX 240
typedef struct{
CCH_MON_INF CsInf[CCH_MON_BUF_MAX];
} CCH_MON_LIST;
//#endif
#ifdef SIMU_ON_PC /*zch for protocol simulator */
#pragma pack( pop, mnheader,1 )
#endif
#ifdef _ON_SANYO_
#define SYS_WORK ((MN_SYSWRK*)Sys_work) //Added
#else
#define SYS_WORK ((MN_SYSWRK*)&mn_syswork)
#endif
#define MN_IN_EVT(st) ((st*)SYS_WORK->in_evt) //((st*)SYS_WORK->in_evt) //Added by chenxl
#define MN_OUT_EVT(st) ((st*)SYS_WORK->out_evt) // ((st*)SYS_WORK->out_evt)
//add by Qian Aidong for support Lucent network FEAL32 algorithm. START
#define FealN 32 /* FEAL-N value */
// Noted by Yang Yajiang
void Mm_FEAL32enc(U1 *, U1 *, U1 *); //add for supporting Lucent network 2001-11-26
void Mn_FealExkey(U1 *, U1 [][2]);
void Mn_FealF(U1 *, U1 *, U1 *);
void Mn_FealFK(U1 *, U1 *, U1 *);
U1 Mn_FealS0(U1, U1);
U1 Mn_FealS1(U1, U1);
//add by Qian aidong END
#ifdef _ON_SANYO_
void Mn_SMain(void);
#else
void Mn_SMain(void*);
#endif
_BOOL Mn_SSchEvTbl(MN_EVENTREC** ppEvtTbl); //Modified by chenxl
void Mn_SSeparate(MN_EVENTREC** ppEvtTbl);
void Sleep_Pch_Set(U1);
void Sleep_Pch_Select(void);
void Sleep_Control(U1);
void Mn_MInitial(void);
void Mn_MInitData1(void);
void Mn_MInitData2(void);
void Mn_MInitData3(void);
void Mn_MInitData4(void);
void Mn_MInitData5(void);
void Mn_PSNumMake(U1,U1,U1 *,U1);
void Mn_PAreaBitMask(void);
void Mn_SReset(void);
void Mn_InitData(void);
void Mn_InitL3L2(void);
U1 Mn_InfChk(MN_INFTBL* pInfoTbl , U1 *msg_ptr, U1 length);
U1 So_MsgChk(U1 *, U1);
void err_dsp(M_MSB *);
void exec_uap(M_MSB *);
void Mn_settim(U2);
void PubAreaNoMake(BYTE*,BYTE*,BYTE);
BYTE PubNgAreaChk(BYTE*);
void PubNgAreaSet(BYTE*,BYTE);
void PubNgAreaClr(void);
void Mn_HakDLRrcv(void);
U1 Mn_Rtdeffunc(void);
void Mn_PCCHEstablish(void);
void Mn_CCH_M_REQ(U1);
void Mn_PCCHFail(void);
void Mn_CCHMisInit(void);
void Mn_PCCHLiberate(void);
void Mn_PCCHReEstab(void);
void Mn_PCCHTimStp(U1);
void Mn_PCCHTimUp(void);
void Mn_PCsyncOut(void);
void Mn_PCsyncTimStart(void);
void Mn_PCsyncCount(void);
void Mn_PCsyncCounterClear(void);
void Mn_PCsyncTimerClear(void);
void Mn_PCsyncCountStart(void);
void Mn_PCsyncRssiChk(void);
void Mn_CCHQualDsp(void);
void Mn_CCHMonRegSet2(CCH_MON_INF* p);
void Mn_RSSIMonRegSet(void);
U1 Mn_PPsnoCmp(void);
void Mn_SysCsInfSet(void);
void Mn_LCHMsgSet(enumCALLMODE);
void Mn_IncomCallDsp(void);
void Mn_PSELRSSIChk(void);
void Mn_UwCrcErrChk(void);
void Mn_Atimerstop(void);
void Mn_PCCHMonitor2(void);
void Mn_PCCHMonTo(void);
void Mn_PPBSReSelect(void);
void Mn_ti_page(void);
U1 Mn_AreaCmp(U1 *,U1 *);
U1 Mn_AreaNoCmp(U1 *);
void Mn_PRadioInfo(void);
void Mn_PSysInfo(void);
U1 Mn_PSys2InfoChk(void);
U1 Mn_PSysInfoChk(void);
void Mn_PSysRegulChk(void);
void Mn_PCCHEstComp(void);
void Mn_PCCHEstCompWait(void);
void Mn_PCCHEstCompLink(void);
U1 Mn_PUBCallReglChk(void);
void Mn_Retry(void);
U1 Mn_CCHMoniNG(void);
void Mn_MoveCCHFail(void);
U1 Mn_GetFeature(U1 feature, U1 subfeature); /*Get feature configuration*/
void Mn_PCallSet(void);
void Mn_PIncomCall(void);
void Mn_PIncomRs(void);
void Mn_PReRadioInfo(void);
void Mn_PReSysInfo(void);
U1 Mn_PBCCHRcvChk(void);
U1 Mn_PCCHReEstComp(void);
void Mn_PLink(void);
void Mn_PLinkNG(void);
void Mn_PSamePeriod(void);
void Mn_PTchL1Err(void);
/* #ALG -> */
void Mn_PHakkoCSMonSort(void);
void Mn_PWaitPriCSMonSort(MN_CCHMONREC *,U1);
U1 Mn_PHakkoGrpLA1(MN_CCHMONREC *);
U1 Mn_PHakkoGrpLA2(MN_CCHMONREC *, U1 *);
U1 Mn_PHakkoGrpLA3(MN_CCHMONREC *, U1 *);
U1 Mn_PHakkoGrpLA4(MN_CCHMONREC *);
U1 Mn_PHakkoGrpLA5(MN_CCHMONREC *, U1 *);
U1 Mn_PHakkoGrpLA6(MN_CCHMONREC *, U1 *);
U1 Mn_PWaitCCHMonChk(void);
void Mn_PWaitCCHMonReq2(void);
void Mn_PWaitCCHMonTo(void);
U1 Mn_PFstPBSCCHEstReqInit(void);
U1 Mn_PBSSelReTrySet(U1);
U1 Mn_PBSSelReTry(U1);
U1 Mn_PNextPBSCCHEstReq(U1, U1);
void Mn_PRegulCSMonSort(U1);
void Mn_PCHRssiChk(void);
void Mn_LowCSPrefer_Sort(U1); /*Low Power CS Prefer sort*/
/*--------------------------------------------------------------*/
/* [ MN80PUB3.C ] */
/*--------------------------------------------------------------*/
void Mn_PCallDLSet(void);
void Mn_PCallDefInfo(void);
void Mn_PCallRTFncRes(void);
void Mn_PCallMMFncRes(void);
void Mn_PCallMMCtf(void);
void Mn_PCallSetAcp(void);
void Mn_PProgress(void);
void Mn_PCallDLF(void);
void Mn_PCCCall(void);
void Mn_PCCRspns(void);
void Mn_PTchDLRrcv(void);
void Mn_PTchDLSrcv(void);
void Mn_PIncomDLSet(void);
void Mn_PIncomSet(void);
void Mn_PFuncReqNG(void);
void Mn_PIncomAlertRq(void);
void Mn_PIncomRsRq(void);
void Mn_PIncomRsDp(void);
void Mn_PIncomDLF(void);
void Mn_PFacReq(void);
void Mn_PFacDsp(void);
void Mn_PDialReq(void);
void Mn_PCCValDsp(void);
void Mn_PRTOptReq(void);
void Mn_PRTOptDsp(void);
void Mn_PCCOptReq(void);
void Mn_PCCOptDsp(void);
void Mn_PThruDsp(void);
void Mn_RTFncSet(void);
void Mn_DLDsp(void);
void Mn_SCHEstDsp(void);
void Mn_TCHEndDsp(void);
void Mn_BearCapaSet(U1 *, U1);
void Mn_PMailUUISet(void);
void Mn_PMailUUIUAPSet(void);
void Mn_Tch1RelReq(U1,U1);
void Mn_LLCInfoSet(U1 *,U1);
/*------------------------------------------------------*/
/* [ MN80PUB4.C ] */
/*------------------------------------------------------*/
void Mn_PZoneInfo(void);
void Mn_PDLinkRDsp(void);
void Mn_PTchChange(void);
void Mn_PTchChgIns(void);
void Mn_PTchChgStp(void);
void Mn_PTchChgRelease(void);
void Mn_PTchChgRegul(void);
void Mn_PTchChgSync(void);
void Mn_PTchChgEnd(void);
void Mn_PTchChgNG(void);
void Mn_PSyncBstrcv(void);
void Mn_PHORCall(void);
U1 Mn_PsnoBcdToIa5(U1 *,U1 *,U1);
void Mn_PHOTimOut(void);
void Mn_PTchSyncOK(void);
void Mn_PTchSyncNG(void);
void Mn_PTchModori(void);
void Mn_PTchRReq(void);
void Mn_PCutReq(void);
void Mn_PRadCutReq(void);
void Mn_PCutDsp(void);
void Mn_PReleaseDsp(void);
void Mn_PReleaseReq(void);
void Mn_PReleaseEnd(void);
void Mn_PLinkCut(void);
void Mn_PRadioCut(void);
void Mn_PRadioEnd(void);
void Mn_PRadioRelease(void);
void Mn_PTC309PTo(void);
void Mn_PRadioInit(void);
void Mn_Bst_Ho(void);
void Mn_PLocHakInit(void);
void Mn_PLocHakRel(void);
BYTE Mn_HakLocCut(void);
void Mn_PowerSearch(void);
void Mn_HTCHDatReq(void);
/*--------------------------------------------------------------*/
/* [ MN80PUB5.C ] */
/*--------------------------------------------------------------*/
void Mn_PLocReg(void);
U1 Mn_PLocReglChk(void);
void Mn_PAccTimer(void);
void Mn_PLocSyncNG(void);
void Mn_PLocDLSet(void);
void Mn_PLocAcpt(void);
void Mn_PLocNG(void);
void Mn_PLocDLNG(void);
void Mn_PLocRRel(void);
void Mn_PLocFrcRel(void);
void Mn_PLocFrcInit(void);
BYTE Mn_PCallReLoc(void);
BYTE Mn_EstCallLoc(void);
BYTE Mn_RInitCallLoc(BYTE);
void Mn_PBSRetryCheck(void);
void Mn_RetryNgSet(void);
void Mn_HTxComp(void);
U1* Mn_GetSpecState(U1 mod); //Added by chenxl
void MnBearerSet(U1 *mes,U2 len,U1 *des);
#ifdef SIMU_ON_PC
void ph_ini_req(void); //Simulator of L1
//void cch_m_req(BYTE kind, BYTE freq, BYTE thresh, BYTE gain, BYTE flg);
void cch_m_req2(BYTE kind, BYTE freq, BYTE thresh, BYTE gain, BYTE flg);
//void cch_m_stp(void);
void cch_m_stp2(void);
//void cch_est_req(BYTE freq, BYTE *cs_id, BYTE gain);
//void slp_t_req( WORD xtal_cnt, BYTE id );
void slp_c_req( BYTE cmd );
void own_pch_req( BYTE frame_cnt );
void another_cch_get(void);
//void RfInit(void);
#endif //endof SIMU_ON_PC
#ifdef __cplusplus
}
#endif
#endif //_MN_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -