147 lines
3.1 KiB
C
147 lines
3.1 KiB
C
/*
|
|
*********************************************************************************
|
|
* *
|
|
* NOTICE: *
|
|
* *
|
|
*********************************************************************************
|
|
*/
|
|
|
|
|
|
/*********************************************************************************
|
|
* <mgc_ctl.c>
|
|
* This file contain global variable control
|
|
*
|
|
* Author Date
|
|
* ------ ------
|
|
* Sam Yao Aug 2008
|
|
*********************************************************************************/
|
|
|
|
/*-----------------------------------------------------------------------*/
|
|
/* INCLUDE HEADER FILES */
|
|
/*-----------------------------------------------------------------------*/
|
|
#include "./include/mgc_ctl.h"
|
|
|
|
MGC_CTL mgcCtl;
|
|
|
|
|
|
void mgc_ctl_num_init(WORD sysId , WORD localIp , WORD peerIp)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
pMgcCtl->mgcChlAssigned = 0;
|
|
pMgcCtl->mgcMgCreated = 0;
|
|
pMgcCtl->mgcMaxChlNo = MGC_MAX_NUM_OF_CHNL;
|
|
pMgcCtl->mgcMaxMgNo = MGC_MAX_NUM_OF_MG;
|
|
|
|
pMgcCtl->sysId = sysId;
|
|
pMgcCtl->localIp = localIp;
|
|
pMgcCtl->peerIp = peerIp;
|
|
return;
|
|
}
|
|
|
|
BOOL mgc_ctl_is_mg_full(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
if((pMgcCtl->mgcMgCreated + 1) > pMgcCtl->mgcMaxMgNo)
|
|
return TRUE;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
void mgc_ctl_mg_add_one(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
pMgcCtl->mgcMgCreated++;
|
|
return;
|
|
}
|
|
|
|
void mgc_ctl_mg_remove_one(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
pMgcCtl->mgcMgCreated--;
|
|
return;
|
|
}
|
|
|
|
BOOL mgc_ctl_is_chnl_full(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
if((pMgcCtl->mgcChlAssigned+ 1) > pMgcCtl->mgcMaxChlNo)
|
|
return TRUE;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
void mgc_ctl_chnl_add_one(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
pMgcCtl->mgcChlAssigned++;
|
|
return;
|
|
|
|
}
|
|
|
|
void mgc_ctl_chnl_remove_one(void)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
pMgcCtl->mgcChlAssigned--;
|
|
return;
|
|
}
|
|
|
|
|
|
int mgc_ctl_set_mg_max_num(int num)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
if((num <= 0)||(num>MGC_MAX_NUM_OF_MG))
|
|
return -1;
|
|
|
|
pMgcCtl->mgcMaxMgNo = num;
|
|
return num;
|
|
}
|
|
|
|
int mgc_ctl_set_chnl_max_num(int num)
|
|
{
|
|
MGC_CTL *pMgcCtl = NULL;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
if((num <= 0)||( num > MGC_MAX_NUM_OF_CHNL))
|
|
return -1;
|
|
|
|
pMgcCtl->mgcMaxChlNo = num;
|
|
return num;
|
|
}
|
|
|
|
|
|
#ifdef MGC_TEST_ENABLE
|
|
int mgc_ctl_chnl_num(void)
|
|
{
|
|
MGC_CTL *pMgcCtl;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
return pMgcCtl->mgcChlAssigned;
|
|
}
|
|
|
|
int mgc_ctl_mg_num(void)
|
|
{
|
|
MGC_CTL *pMgcCtl;
|
|
pMgcCtl = &mgcCtl;
|
|
|
|
return pMgcCtl->mgcMgCreated;
|
|
}
|
|
|
|
#endif
|