#ifndef _UMAP_GLOBAL_H_
#define _UMAP_GLOBAL_H_

#ifdef __cplusplus
extern          "C" {
#endif

#include "umap_struct.h"

#define MAX_DB_WINPATHBRIDGEPORT_SIZE        1000
#define MAX_DB_WINPATHIFC_SIZE               1000
#define MAX_DB_ATMVCL_SIZE                   9000
#define MAX_DB_ATMTRAFFICDESCRPARAM_SIZE     256
#define MAX_DB_IFENTRY_SIZE                  20000
#define MAX_DB_ENTPHYSICALENTRY_SIZE         256
#define MAX_DB_XDSLLINE_SIZE                 128
#define MAX_DB_XDSLLINESERVICEPROFILE_SIZE   128
#define MAX_DB_XDSLSPECTRUMPROFILE_SIZE      128
#define MAX_DB_VLAN_SIZE                     4096
#define MAX_DB_WINPATHPHYENET_SIZE           2
#define MAX_DB_USER_SIZE                     32
#define MAX_DB_WINPATHBRIDGESRCMACFILTER_SIZE           120
#define MAX_DB_WINPATHBRIDGEIPFILTER_SIZE               120
#define MAX_DB_WINPATHBRIDGEPRIOTAGFILTER_SIZE          120
#define MAX_DB_ACCESSCARD_SIZE               5


struct UMAP_Database_S
{
   struct UMAP_AtmTrafficDescrParam_S              arrayAtmTrafficDescrParam[MAX_DB_ATMTRAFFICDESCRPARAM_SIZE];
   struct UMAP_AtmVpl_S                            arrayAtmVpl[960];
   struct UMAP_AtmVcl_S                            arrayAtmVcl[MAX_DB_ATMVCL_SIZE];
   struct UMAP_AtmInterfaceConf_S                  arrayAtmAtmInterfaceConf[MAX_DB_ATMVCL_SIZE];
   struct UMAP_WinpathPhyEnet_S                    arrayWinpathPhyEnet[MAX_DB_WINPATHPHYENET_SIZE];
   struct UMAP_WinpathIfc_S                        arrayWinpathIfc[MAX_DB_WINPATHIFC_SIZE];
   struct UMAP_WinpathBridgePort_S                 arrayWinpathBridgePort[MAX_DB_WINPATHBRIDGEPORT_SIZE];
   struct UMAP_WinpathBridgeSrcMacFilter_S         arrayWinpathBridgeSrcMacFilter[MAX_DB_WINPATHBRIDGESRCMACFILTER_SIZE];
   struct UMAP_WinpathBridgeIpFilter_S             arrayWinpathBridgeIpFilter[MAX_DB_WINPATHBRIDGEIPFILTER_SIZE];
   struct UMAP_WinpathBridgePrioTagFilter_S        arrayWinpathBridgePrioTagFilter[MAX_DB_WINPATHBRIDGEPRIOTAGFILTER_SIZE];
   struct UMAP_WinpathBridge_S                     arrayWinpathBridge;     
   struct UMAP_WinpathIgmp_S                       arrayWinpathIgmp;    
   struct UMAP_WinpathIgmpGroup_S                  arrayWinpathIgmpGroup[100];
   struct UMAP_Vpmt_S                              arrayVpmt[MAX_DB_WINPATHBRIDGEPORT_SIZE];
   struct UMAP_EnetTrafficDescrParam_S             arrayEnetTrafficDescrParam[10];
   struct UMAP_EnetChannel_S                       arrayEnetChannel[20];
   struct UMAP_WinpathDebug_S                      arrayWinpathDebug;      
   struct UMAP_IfEntry_S                           arrayIfEntry[MAX_DB_IFENTRY_SIZE];
   struct UMAP_EntPhysicalEntry_S                  arrayEntPhysicalEntry[MAX_DB_ENTPHYSICALENTRY_SIZE];
   struct UMAP_Xdsl_S                              arrayXdsl;  
   struct UMAP_XdslLine_S                          arrayXdslLine[MAX_DB_XDSLLINE_SIZE];   
   struct UMAP_XdslLineConf_S                      arrayXdslLineConf[MAX_DB_XDSLLINE_SIZE];  
   struct UMAP_XdslLineServiceProfile_S            arrayXdslLineServiceProfile[MAX_DB_XDSLLINESERVICEPROFILE_SIZE];  
   struct UMAP_XdslLineServiceProfileChannel_S     arrayXdslLineServiceProfileChannel[MAX_DB_XDSLLINESERVICEPROFILE_SIZE]; 
   struct UMAP_XdslLineSpectrumProfile_S           arrayXdslLineSpectrumProfile[MAX_DB_XDSLSPECTRUMPROFILE_SIZE]; 
   struct UMAP_XdslLineSpectrumProfileAdslAdsl2_S  arrayXdslLineSpectrumProfileAdslAdsl2[MAX_DB_XDSLSPECTRUMPROFILE_SIZE]; 
   struct UMAP_XdslLineSpectrumProfileReAdsl2_S    arrayXdslLineSpectrumProfileReAdsl2[MAX_DB_XDSLSPECTRUMPROFILE_SIZE];   
   struct UMAP_XdslLineSpectrumProfileAdsl2Plus_S  arrayXdslLineSpectrumProfileAdsl2Plus[MAX_DB_XDSLSPECTRUMPROFILE_SIZE]; 
   struct UMAP_XdslLineTcaThreshold_S              arrayXdslLineTcaThreshold[MAX_DB_XDSLLINE_SIZE];   
   struct UMAP_XdslTest_S                          arrayXdslTest; 
   struct UMAP_XdslXtucSeltData_S                  arrayXdslXtucSeltData[MAX_DB_XDSLLINE_SIZE]; 
   struct UMAP_AccessCardSrv_S                     arrayAccessCardSrv[MAX_DB_ACCESSCARD_SIZE];  
// struct UMAP_SysMain_S                           arraySysMain;  
   struct UMAP_Stp_S                               arrayStp;   
   struct UMAP_StpPort_S                           arrayStpPort[MAX_DB_WINPATHBRIDGEPORT_SIZE]; 
   struct UMAP_TpStatic_S                          arrayTpStatic[100];  
   struct UMAP_FdbStatic_S                         arrayFdbStatic[100]; 
   struct UMAP_VlanStatic_S                        arrayVlanStatic[MAX_DB_VLAN_SIZE];  
   struct UMAP_Sntp_S                              arraySntp;  
   struct UMAP_DhcpRelay_S                         arrayDhcpRelayStp[MAX_DB_XDSLLINE_SIZE];  
   struct UMAP_User_S                              arrayUser[MAX_DB_USER_SIZE];  
   struct UMAP_Syslog_S                            arraySyslog;   
   struct UMAP_Http_S                              arrayHttp;  
   struct UMAP_SnmpTargetAddr_S                    arraySnmpTargetAddr[32];   
   struct UMAP_SnmpNotify_S                        arraySnmpNotify[32]; 
   struct UMAP_SnmpCommunity_S                     arraySnmpCommunity[16]; 
   struct UMAP_AlmMain_S                           arrayAlmMain;  
   struct UMAP_AlmTemperature_S                    arrayAlmTemperature[6]; 
   struct UMAP_AlmProfile_S                        arrayAlmProfile[16]; 
};

extern struct UMAP_Database_S *g_pDb;

#ifdef __cplusplus
}
#endif
                                 
#endif

