/************************************************************************************ * rodMemoryMap.h: stores pointers to all the important structures * on the DSP. ************************************************************************************/ #ifndef DSP_PTR_STRUCT_H #define DSP_PTR_STRUCT_H //#include "primFuncts.h" #include "txtBuffer.h" #include "comRegDfns.h" /* Used to load the structure's address into a well defined address. The host picks this up from the MDSP address; the MDSP loads the SDSP addresses into its structure at boot time, and finishes loading the SDSP structures when they have been started. */ #define MEM_STRUCT_REVISION 100 #if (defined(I_AM_MASTER_DSP)) #define SDSP_REVE_MEM_STRUCT_PTR ((MEMORY_MAP_REG) -(0x80000000) +(0x10000)) #define SDSP_REVBC_MEM_STRUCT_PTR (MEMORY_MAP_REG) #endif typedef struct SdspInternal { UINT32 structureSize; UINT32 rodCfg, rodMode; UINT32 rodCfgSize, rodModeSize; UINT32 histoCtrl, evtMgrCtrl, eventQueue, evtMgrRes; UINT32 histoCtrlSize, evtMgrCtrlSize, eventQueueSize, evtMgrResSize; UINT32 histoDefaultBase; struct MSG_LIST *msgList[N_MSG_BFRS][2]; } SdspInternal; typedef struct SdspMemoryStruct { /* 1st member is the structure size, so that the host can read the pointer to the structure above, make a 1 word access to that address to determine its size, and then read out the entire structure. */ UINT32 structureSize; UINT32 revision; UINT32 ipram, idram, commRegs, idata, idramSec, xcode; UINT32 ipramSize, idramSize, commRegsSize, idataSize, idramSecSize, xcodeSize; UINT32 sdram[2], sdramSize[2]; UINT32 burst, burstSize; UINT32 primBuffer, replyBuffer, primBufferSize, replyBufferSize; UINT32 txtBuff[N_TXT_BUFFS]; UINT32 txtBuffer[2]; UINT32 primParams, nPrimitives; SdspInternal *internal; } SdspMemoryStruct; #if ((defined(I_AM_HOST))||(defined(I_AM_MASTER_DSP))) typedef struct MdspInternal { UINT32 structureSize; UINT32 rodCfg, rodMode; UINT32 rodCfgSize, rodModeSize; UINT32 spStruct[2]; UINT32 histoCtrl, moduleMaskData, maskCfg; UINT32 histoCtrlSize, moduleMaskDataSize, maskCfgSize; struct MSG_LIST *msgList[N_MSG_BFRS][2]; } MdspInternal; typedef struct MdspMemoryStruct { /* 1st member is the structure size, so that the host can read the pointer to the structure above, make a 1 word access to that address to determine its size, and then read out the entire structure. */ UINT32 structureSize; UINT32 revision; UINT32 rodRevision; UINT32 ipram, idram, commRegs, idata, idramSec, xcode; UINT32 ipramSize, idramSize, commRegsSize, idataSize, idramSecSize, xcodeSize; UINT32 sdram[2], sdramSize[2]; UINT32 moduleCfgArray[3], spBuff[2]; UINT32 moduleCfgSize, moduleCfgArraySize, spBuffSize; UINT32 primBuffer, replyBuffer, primBufferSize, replyBufferSize; UINT32 txtBuff[N_TXT_BUFFS]; UINT32 txtBuffer[2]; UINT32 primParams, nPrimitives; MdspInternal *internal; SdspMemoryStruct sdspMem; } MdspMemoryStruct; #endif /* MDSP */ #endif /* Multiple inclusion protection */