#if defined(CDDSPI_MAC_DECL_DEV_ENUM) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV typedef enum teCddSpiDev{ #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) CDDSPI_CONCAT(CddSpi_eDev_,name), #define END_CDDSPI_DEV CddSpi_eDev_Count}teCddSpiDev; #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_IFC_ENUM) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC typedef enum teCddSpiIfc{ #define CDDSPI_IFC(ifc) CDDSPI_CONCAT(CddSpi_eIfc_,ifc), #define END_CDDSPI_IFC CddSpi_eIfc_Count}teCddSpiIfc; #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_IFC) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC STATIC_AL uint8 CddSpi_aucIfcMap[] = { #define CDDSPI_IFC(ifc) ifc, #define END_CDDSPI_IFC }; #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_DEVHANDLE) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV STATIC_AL tsCddSpiDevCfg CddSpi_asDeviceCfg[] = { #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par, ddcb) { .ucSpiIfc = ifc, \ .ucCs = cs, \ .ucDataLen = len, \ .ucMaxElements = msg, \ .ucElements = msg, \ .ucBrs = brs, \ .ucCPol = cpol, \ .ucCPha = cpha, \ .ucDataDir = msb }, #define END_CDDSPI_DEV }; #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_DEVDYNCFG) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV STATIC_AL CONST_AL tsCddSpiDevDynCfg CddSpi_asDevDynCfg[] = { #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) {.fpDevDynCfgCb = ddcb}, #define END_CDDSPI_DEV }; #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_IFCSEQ_ENUM) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP typedef enum teCddSpiteCddSpiIfcSeq{ #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) CDDSPI_CONCAT(CddSpi_eSeqIfc_,ifc), #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP CddSpi_eSeq_Count}teCddSpiIfcSeq; #elif defined(CDDSPI_MAC_DECL_DEVFRM_ENUM) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV typedef enum teCddSpiDevMaxElements{ #define CDDSPI_DEV_CFG(name,ifc,cs,len,frm,brs,cpol,cpha,msb,par,ddcb) CDDSPI_CONCAT(CddSpi_eDevMaxElements_,name) = (frm), #define END_CDDSPI_DEV }teCddSpiDevMaxElements; #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_CBS) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) void rxcb(uint16 unId, uint32 ulData); \ uint32 txcb(uint16 unId); #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_DEVCB) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) STATIC_AL tsCddSpiDevCbData CDDSPI_CONCAT(CddSpi_asSpiDevCb_,name)[CDDSPI_CONCAT(CddSpi_eDevMaxElements_,name)] = { #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) { .unCbId = cbid, \ .sDevCb = {(tfpCddSpiTxCb)txcb, (tfpCddSpiRxCb)rxcb}}, #define END_CDDSPI_DEVCB }; #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_SEQDATAIFC) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) STATIC_AL tsCddSpiDevSeqData CDDSPI_CONCAT(CddSpi_asSeqDataIfc_,ifc)[] = { #define BEGIN_CDDSPI_DEVCB(name) {.eDev = CDDSPI_CONCAT(CddSpi_eDev_,name), \ .psDevCbData = CDDSPI_CONCAT(CddSpi_asSpiDevCb_,name)}, #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ }; #define END_CDDSPI_MAP #elif defined(CDDSPI_MAC_DECL_SEQDATA) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP STATIC_AL tsCddSpiSeqData CddSpi_asSeqData[] = { #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) { .ucSize = (sizeof(CDDSPI_CONCAT(CddSpi_asSeqDataIfc_,ifc))/sizeof(tsCddSpiDevSeqData)) , \ .boRxDataValid = FALSE, \ .psDevData = CDDSPI_CONCAT(CddSpi_asSeqDataIfc_,ifc)}, #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP }; #elif defined(CDDSPI_MAC_DECL_SEQHANDLE) #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP STATIC_AL tsCddSpiSeqHandler CddSpi_asSeqHandler[CddSpi_eSeq_Count] = { #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) {.unCycleCnt = offs, \ .unPrescaler = pre, \ .eSpiIfc = CDDSPI_CONCAT(CddSpi_eIfc_,ifc), \ .psSeqData = &CddSpi_asSeqData[CDDSPI_CONCAT(CddSpi_eSeqIfc_,ifc)]}, #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP }; #else #include "CddSpi_Mac_Prep.h" #define BEGIN_CDDSPI_MAP #define BEGIN_CDDSPI_IFC #define CDDSPI_IFC(ifc) #define END_CDDSPI_IFC #define BEGIN_CDDSPI_DEV #define CDDSPI_DEV_CFG(name,ifc,cs,len,msg,brs,cpol,cpha,msb,par,ddcb) #define END_CDDSPI_DEV #define BEGIN_CDDSPI_SEQ(ifc,offs,pre) #define BEGIN_CDDSPI_DEVCB(name) #define CDDSPI_DEVCB_CFG(cbid,txcb,rxcb) #define END_CDDSPI_DEVCB #define END_CDDSPI_SEQ #define END_CDDSPI_MAP #endif