#ifndef _UMAP_IPC_STRUCT_H_
#define _UMAP_IPC_STRUCT_H_

#include "umap_struct.h"
#include "umap_struct_internal.h"
#include "umap_cmd.h"


#define MACRO_IPCSTRUCT_UNION(name) \
               struct UMAP_##name##_S           pkt##name;



typedef struct{
               UMAP_U32    InvokeId;   //invoke random number
               UMAP_U32    InvokeTime; //used for time out
               UMAP_CmdId  CmdId;      //command identification
               UMAP_U8     PriId;      //reserved
               UMAP_U8     Stid;       //source task
               UMAP_U8     Dtid;       //destination task
               UMAP_S16    Idx;        //row index
               UMAP_U32    Type;       //get/set/ack/evt
               UMAP_Status Result;     //used by ack
               UMAP_U32    Mask;       //used by set or event mask
               union {
                     UMAP_Bool   u_bool;
                     UMAP_U64    u_u64;
                     UMAP_U32    u_u32;
                     UMAP_U16    u_u16;
                     UMAP_U8     u_u8;
                     UMAP_S64    u_s64;
                     UMAP_S32    u_s32;
                     UMAP_S16    u_s16;
                     UMAP_S8     u_s8;
                     UMAP_Char   u_string[256];
//cm
                     MACRO_IPCSTRUCT_UNION(AtmTrafficDescrIndexNext)
                     MACRO_IPCSTRUCT_UNION(AtmTrafficDescrParam)
                     MACRO_IPCSTRUCT_UNION(AtmVpl)
                     MACRO_IPCSTRUCT_UNION(AtmVcl)
                     MACRO_IPCSTRUCT_UNION(AtmInterfaceConf)
                     MACRO_IPCSTRUCT_UNION(WinpathIfc)
                     MACRO_IPCSTRUCT_UNION(WinpathPhyEnet)
                     MACRO_IPCSTRUCT_UNION(WinpathBridgePort)
                     MACRO_IPCSTRUCT_UNION(WinpathBridgeSrcMacFilter)
                     MACRO_IPCSTRUCT_UNION(WinpathBridgeIpFilter)
                     MACRO_IPCSTRUCT_UNION(WinpathBridgePrioTagFilter)
                     MACRO_IPCSTRUCT_UNION(WinpathIgmpGroup)
                     MACRO_IPCSTRUCT_UNION(WinpathBridge)
                     MACRO_IPCSTRUCT_UNION(WinpathIgmp)
                     MACRO_IPCSTRUCT_UNION(Vpmt)
                     MACRO_IPCSTRUCT_UNION(EnetTrafficDescrParam)
                     MACRO_IPCSTRUCT_UNION(EnetChannel)
                     MACRO_IPCSTRUCT_UNION(Sntp)
                     MACRO_IPCSTRUCT_UNION(DhcpRelay)
                     MACRO_IPCSTRUCT_UNION(User)
                     MACRO_IPCSTRUCT_UNION(Syslog)
                     MACRO_IPCSTRUCT_UNION(Http)
                     MACRO_IPCSTRUCT_UNION(TpFdb)
                     MACRO_IPCSTRUCT_UNION(FdbStatic)
                     MACRO_IPCSTRUCT_UNION(TpStatic)
                     MACRO_IPCSTRUCT_UNION(Stp)
                     MACRO_IPCSTRUCT_UNION(StpPort)
                     MACRO_IPCSTRUCT_UNION(MemberSet)
                     MACRO_IPCSTRUCT_UNION(VlanStatic)
                     MACRO_IPCSTRUCT_UNION(PortVlan)
                     MACRO_IPCSTRUCT_UNION(Dot1dPortPriority)
                     MACRO_IPCSTRUCT_UNION(Dot1dTrafficClass)
                     MACRO_IPCSTRUCT_UNION(ShdslSpanStatus)
                     MACRO_IPCSTRUCT_UNION(ShdslInventory)
                     MACRO_IPCSTRUCT_UNION(ShdslSpanConf)
                     MACRO_IPCSTRUCT_UNION(ShdslSpanConfProfile)
                     MACRO_IPCSTRUCT_UNION(ShdslEndpointAlarmConfProfile)
                     MACRO_IPCSTRUCT_UNION(ShdslBinding)
                     MACRO_IPCSTRUCT_UNION(ShdslPortEnable)
                     MACRO_IPCSTRUCT_UNION(ShdslEndpointMaint)
                     MACRO_IPCSTRUCT_UNION(ShdslUnitMaint)
                     MACRO_IPCSTRUCT_UNION(SnmpTargetAddr)
                     MACRO_IPCSTRUCT_UNION(SnmpNotify)
                     MACRO_IPCSTRUCT_UNION(SnmpCommunity)

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

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

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

                     MACRO_IPCSTRUCT_UNION(AdslRptAtucPMTrap)
                     MACRO_IPCSTRUCT_UNION(AdslRptAturPMTrap)

               }u;
}UMAP_IPCStruct;


#endif

