47 MemPtr mpModuleInfoDesc;
50 MemPos moduleDataEnd = 0;
51 MemPos currStartPos = 0;
52 U8BIT moduleInfoLength;
54 dsmAssert((mpDiiMsg != NULL));
55 dsmAssert((dataLength > 0));
56 dsmAssert((mpModuleInfoDescStart != NULL));
62 MEMPTR_OPEN( mpDiiMsg, mpModuleInfoDesc );
67 SET_POS_REL( mpModuleInfoDesc, 6 );
71 SET_POS_REL( mpModuleInfoDesc, 12 );
74 READ_UINT16( mpModuleInfoDesc, numModules );
77 GET_POS( mpModuleInfoDesc, moduleDataEnd );
78 moduleDataEnd += dataLength;
86 GET_POS( mpModuleInfoDesc, currStartPos );
89 if (currStartPos >= moduleDataEnd)
95 READ_UINT16( mpModuleInfoDesc, currModuleId );
97 if (currModuleId == moduleId)
104 SET_POS_REL( mpModuleInfoDesc, 5 );
107 READ_UINT8( mpModuleInfoDesc, moduleInfoLength );
110 SET_POS_REL( mpModuleInfoDesc, (S32BIT)moduleInfoLength );
115 SET_POS_ABS( *mpModuleInfoDescStart, currStartPos );
118 MEMPTR_CLOSE( mpModuleInfoDesc );