TInt E32ImageFile_ELF::DoDataHeader(ELFFile &aElfFile, TUint aDataBase) { if (aDataBase==0 && aElfFile.iDataSegmentHdr) aDataBase=aElfFile.iDataSegmentHdr->p_vaddr; TInt size=0; iHdr->iDataBase=aDataBase; if (aElfFile.HasInitialisedData()) { size=ALIGN4(aElfFile.GetDataSize()); iHdr->iDataOffset = iHdr->iCodeOffset + iHdr->iCodeSize; iHdr->iDataSize = size; } if (aElfFile.HasBssData()) { iHdr->iBssSize = ALIGN4(aElfFile.GetBssSize()); } return size; }
TInt E32ImageFile_ELF::CopyData(char *p, ELFFile &aElfFile) { TInt size=aElfFile.GetDataSize(); if (size) memcpy(p, (char *)aElfFile.GetData(), size); return size; }