#ifndef _UMAP_API_H_
#define _UMAP_API_H_


#ifdef __cplusplus
extern          "C" {
#endif

#include "umap_struct.h"
#include "umap_enum.h"
#include "umap_mask_enum.h"
#include "umap.h"
#include "umap_cmd.h"


UMAP_Char* UMAP_GetLastErrString(void);

////////////////////////MACRO_UMAP_API_PROTOTYPE
#define MACRO_UMAP_API_PROTOTYPE(name) \
UMAP_Status UMAP_##name##Create              ( \
                                             UMAP_S16                      paramIdx, \
                                             struct UMAP_##name##_S*       paramEntry \
                                             ); \
UMAP_Status UMAP_##name##Delete              ( \
                                             UMAP_S16                      paramIdx, \
                                             struct UMAP_##name##_S*       paramEntry \
                                             ); \
UMAP_Status UMAP_##name##Get                 ( \
                                             UMAP_S16                      paramIdx, \
                                             struct UMAP_##name##_S*       paramEntry \
                                             ); \
UMAP_Status UMAP_##name##GetNext             ( \
                                             UMAP_S16                      paramIdx, \
                                             struct UMAP_##name##_S*       paramEntry \
                                             ); \
UMAP_Status UMAP_##name##Set                 ( \
                                             UMAP_S16                      paramIdx, \
                                             UMAP_U32                      paramMask, \
                                             struct UMAP_##name##_S*       paramEntry \
                                             ); 
// cm
MACRO_UMAP_API_PROTOTYPE(AtmTrafficDescrIndexNext)
MACRO_UMAP_API_PROTOTYPE(AtmTrafficDescrParam)
MACRO_UMAP_API_PROTOTYPE(AtmVpl)
MACRO_UMAP_API_PROTOTYPE(AtmVcl)
MACRO_UMAP_API_PROTOTYPE(AtmInterfaceConf)
MACRO_UMAP_API_PROTOTYPE(WinpathPhyEnet)
MACRO_UMAP_API_PROTOTYPE(WinpathIfc)
MACRO_UMAP_API_PROTOTYPE(WinpathBridgePort)
MACRO_UMAP_API_PROTOTYPE(WinpathBridgeSrcMacFilter)
MACRO_UMAP_API_PROTOTYPE(WinpathBridgeIpFilter)
MACRO_UMAP_API_PROTOTYPE(WinpathBridgePrioTagFilter)
MACRO_UMAP_API_PROTOTYPE(WinpathIgmpGroup)
MACRO_UMAP_API_PROTOTYPE(WinpathBridge)
MACRO_UMAP_API_PROTOTYPE(WinpathIgmp)
MACRO_UMAP_API_PROTOTYPE(Vpmt)
MACRO_UMAP_API_PROTOTYPE(EnetTrafficDescrParam)
MACRO_UMAP_API_PROTOTYPE(EnetChannel)
MACRO_UMAP_API_PROTOTYPE(Sntp)
MACRO_UMAP_API_PROTOTYPE(DhcpRelay)
MACRO_UMAP_API_PROTOTYPE(User)
MACRO_UMAP_API_PROTOTYPE(Syslog)
MACRO_UMAP_API_PROTOTYPE(Http)
MACRO_UMAP_API_PROTOTYPE(TpFdb)
MACRO_UMAP_API_PROTOTYPE(FdbStatic)
MACRO_UMAP_API_PROTOTYPE(TpStatic)
MACRO_UMAP_API_PROTOTYPE(Stp)
MACRO_UMAP_API_PROTOTYPE(StpPort)
MACRO_UMAP_API_PROTOTYPE(MemberSet)
MACRO_UMAP_API_PROTOTYPE(VlanStatic)
MACRO_UMAP_API_PROTOTYPE(PortVlan)
MACRO_UMAP_API_PROTOTYPE(Dot1dPortPriority)
MACRO_UMAP_API_PROTOTYPE(Dot1dTrafficClass)
MACRO_UMAP_API_PROTOTYPE(ShdslSpanStatus)
MACRO_UMAP_API_PROTOTYPE(ShdslInventory)
MACRO_UMAP_API_PROTOTYPE(ShdslSpanConf)
MACRO_UMAP_API_PROTOTYPE(ShdslSpanConfProfile)
MACRO_UMAP_API_PROTOTYPE(ShdslEndpointAlarmConfProfile)
MACRO_UMAP_API_PROTOTYPE(ShdslBinding)
MACRO_UMAP_API_PROTOTYPE(ShdslPortEnable)
MACRO_UMAP_API_PROTOTYPE(ShdslEndpointMaint)
MACRO_UMAP_API_PROTOTYPE(ShdslUnitMaint)
MACRO_UMAP_API_PROTOTYPE(SnmpTargetAddr)
MACRO_UMAP_API_PROTOTYPE(SnmpNotify)
MACRO_UMAP_API_PROTOTYPE(SnmpCommunity)               

MACRO_UMAP_API_PROTOTYPE(Xdsl)
MACRO_UMAP_API_PROTOTYPE(XdslLine)
MACRO_UMAP_API_PROTOTYPE(XdslLineConf)
MACRO_UMAP_API_PROTOTYPE(XdslLineServiceProfile)
MACRO_UMAP_API_PROTOTYPE(XdslLineServiceProfileChannel)
MACRO_UMAP_API_PROTOTYPE(XdslLineSpectrumProfile)
MACRO_UMAP_API_PROTOTYPE(XdslLineSpectrumProfileAdslAdsl2)
MACRO_UMAP_API_PROTOTYPE(XdslLineSpectrumProfileReAdsl2)
MACRO_UMAP_API_PROTOTYPE(XdslLineSpectrumProfileAdsl2Plus)
MACRO_UMAP_API_PROTOTYPE(XdslXturInventory)
MACRO_UMAP_API_PROTOTYPE(XdslXtucInventory)
MACRO_UMAP_API_PROTOTYPE(XdslLineOperData)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndLineOperData)
MACRO_UMAP_API_PROTOTYPE(XdslChannelOperData)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndChannelOperData)
MACRO_UMAP_API_PROTOTYPE(XdslLineCarrierData)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndLineCarrierData)
MACRO_UMAP_API_PROTOTYPE(XdslLineFailureStatus)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndLineFailureStatus)
MACRO_UMAP_API_PROTOTYPE(XdslTest)
MACRO_UMAP_API_PROTOTYPE(XdslXtucSeltData)
MACRO_UMAP_API_PROTOTYPE(XdslLineTcaThreshold)
//pm
MACRO_UMAP_API_PROTOTYPE(EnetStats)
MACRO_UMAP_API_PROTOTYPE(EnetHcStats)
MACRO_UMAP_API_PROTOTYPE(TpPort)
MACRO_UMAP_API_PROTOTYPE(ShdslEndpointCurr)
MACRO_UMAP_API_PROTOTYPE(Shdsl15MinInterval)

MACRO_UMAP_API_PROTOTYPE(XdslLineInterval)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndLineInterval)
MACRO_UMAP_API_PROTOTYPE(XdslChannelInterval)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndChannelInterval)
MACRO_UMAP_API_PROTOTYPE(XdslLine1Day)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndLine1Day)
MACRO_UMAP_API_PROTOTYPE(XdslChannel1Day)
MACRO_UMAP_API_PROTOTYPE(XdslFarEndChannel1Day)
MACRO_UMAP_API_PROTOTYPE(XdslPerfInfo)

//fm
MACRO_UMAP_API_PROTOTYPE(AlmProfile)
MACRO_UMAP_API_PROTOTYPE(Alm)
MACRO_UMAP_API_PROTOTYPE(AlmCurrent)
MACRO_UMAP_API_PROTOTYPE(AlmEvent)
MACRO_UMAP_API_PROTOTYPE(AlmMain)                  
MACRO_UMAP_API_PROTOTYPE(AlmTemperature)           
MACRO_UMAP_API_PROTOTYPE(AlmSeqIdNext)                
MACRO_UMAP_API_PROTOTYPE(AlmEventSeqIdNext)           
//mm
MACRO_UMAP_API_PROTOTYPE(WinpathDebug)
MACRO_UMAP_API_PROTOTYPE(TrunkCardLed) 
MACRO_UMAP_API_PROTOTYPE(XdslUnitLed) 
MACRO_UMAP_API_PROTOTYPE(XdslChlLed) 
MACRO_UMAP_API_PROTOTYPE(SysMain)   
MACRO_UMAP_API_PROTOTYPE(IfEntry) 
MACRO_UMAP_API_PROTOTYPE(EntPhysicalEntry)   
MACRO_UMAP_API_PROTOTYPE(AtmInterfaceLLID)   
MACRO_UMAP_API_PROTOTYPE(AccessCardSrv)
MACRO_UMAP_API_PROTOTYPE(AccessCardReset)

//internal



#ifdef __cplusplus
}
#endif

                     
#endif

