#ifndef _MGC_MG_INFO_H
#define _MGC_MG_INFO_H
#include "mgc_struct.h"


void mgc_mg_info_setup(void);
void mgc_mg_info_init(MG_INFO *pMgInfo , int id);
void mgc_mg_info_clear(MG_INFO *pMgInfo);
int mgc_mg_info_attached_phy_port_num(MG_INFO *pMgInfo);
BOOL mgc_mg_info_attach_phy_port(MG_INFO *pMgInfo , PHY_PORT_INFO *pPhyPort, MGC_SAP *pSap);
void mgc_mg_info_dettach_phy_port(MG_INFO *pMgInfo , PHY_PORT_INFO *pPhyPort);
MG_INFO *mgc_mg_info_get_unused_mg(void);
MG_INFO *mgc_mg_info_get_index_mg(int index);
BOOL mgc_mg_info_assign_attr(MG_INFO *pMgInfo , MG_ATTR *pMgAttr);
void mgc_mg_info_update_mg_status(MG_INFO *pMgInfo , BOOL status);
MG_INFO *mgc_mg_info_check_mg_is_exsit(MG_ATTR *pMgAttr);
void mgc_mg_info_state_check(MG_INFO *pMgInfo);
CHNL_INFO *mgc_mg_info_find_idle_chnl_info(MG_INFO *pMgInfo);
BOOL mgc_mg_info_is_port_already_exist(MG_INFO *pMgInfo , int portNo , MGC_SAP *pSap);
MG_INFO *mgc_mg_info_find_available_mg(MGC_MG_TYPE mgType);
CONNECT_INFO *mgc_mg_info_assign_idle_connection(MG_INFO *pMgInfo);
CONNECT_INFO *mgc_mg_info_assign_aas_tone_connection(BYTE toneNo);
PHY_PORT_INFO *mgc_mg_info_find_port_by_name(char *name ,WORD localPort);
PHY_PORT_INFO *mgc_mg_info_find_port_by_name_and_portNo(char *name , BYTE portNo ,WORD localPort);
MG_INFO *mgc_mg_info_find_mg_by_name(char *name);
void mgc_mg_info_set_mon(int id , BOOL enable );
BYTE *mgc_mg_info_get_res_addr(void);
void mgc_mg_info_print_info(MG_INFO *pMgInfo);

#endif
