Lines Matching refs:CBA
222 bool initImplicitHeader(ContiguousBlobAccumulator &CBA, Elf_Shdr &Header,
225 ContiguousBlobAccumulator &CBA);
227 ContiguousBlobAccumulator &CBA,
231 ContiguousBlobAccumulator &CBA,
234 ContiguousBlobAccumulator &CBA,
247 ContiguousBlobAccumulator &CBA);
250 ContiguousBlobAccumulator &CBA);
253 ContiguousBlobAccumulator &CBA);
256 ContiguousBlobAccumulator &CBA);
259 ContiguousBlobAccumulator &CBA);
262 ContiguousBlobAccumulator &CBA);
265 ContiguousBlobAccumulator &CBA);
268 ContiguousBlobAccumulator &CBA);
271 ContiguousBlobAccumulator &CBA);
274 ContiguousBlobAccumulator &CBA);
277 ContiguousBlobAccumulator &CBA);
280 ContiguousBlobAccumulator &CBA);
283 ContiguousBlobAccumulator &CBA);
286 ContiguousBlobAccumulator &CBA);
289 ContiguousBlobAccumulator &CBA);
292 ContiguousBlobAccumulator &CBA);
295 ContiguousBlobAccumulator &CBA);
298 ContiguousBlobAccumulator &CBA);
301 ContiguousBlobAccumulator &CBA);
304 ContiguousBlobAccumulator &CBA);
307 ContiguousBlobAccumulator &CBA);
309 void writeFill(ELFYAML::Fill &Fill, ContiguousBlobAccumulator &CBA);
318 uint64_t alignToOffset(ContiguousBlobAccumulator &CBA, uint64_t Align,
653 bool ELFState<ELFT>::initImplicitHeader(ContiguousBlobAccumulator &CBA, in initImplicitHeader() argument
661 initStrtabSectionHeader(Header, SecName, DotStrtab, CBA, YAMLSec); in initImplicitHeader()
663 initStrtabSectionHeader(Header, SecName, DotDynstr, CBA, YAMLSec); in initImplicitHeader()
665 initStrtabSectionHeader(Header, SecName, *ShStrtabStrings, CBA, YAMLSec); in initImplicitHeader()
667 initSymtabSectionHeader(Header, SymtabType::Static, CBA, YAMLSec); in initImplicitHeader()
669 initSymtabSectionHeader(Header, SymtabType::Dynamic, CBA, YAMLSec); in initImplicitHeader()
675 initDWARFSectionHeader(Header, SecName, CBA, YAMLSec); in initImplicitHeader()
719 static uint64_t writeContent(ContiguousBlobAccumulator &CBA, in writeContent() argument
724 CBA.writeAsBinary(*Content); in writeContent()
731 CBA.writeZeros(*Size - ContentSize); in writeContent()
760 ContiguousBlobAccumulator &CBA) { in initSectionHeaders() argument
767 S->Offset = alignToOffset(CBA, /*Align=*/1, S->Offset); in initSectionHeaders()
768 writeFill(*S, CBA); in initSectionHeaders()
779 S->Offset = alignToOffset(CBA, sizeof(typename ELFT::uint), in initSectionHeaders()
782 S->Offset = alignToOffset(CBA, /*Align=*/1, S->Offset); in initSectionHeaders()
787 CBA.writeZeros(Size); in initSectionHeaders()
818 if (initImplicitHeader(CBA, SHeader, Sec->Name, in initSectionHeaders()
835 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign, Sec->Offset); in initSectionHeaders()
854 SHeader.sh_size = writeContent(CBA, Sec->Content, Sec->Size); in initSectionHeaders()
857 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
859 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
861 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
863 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
865 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
867 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
869 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
871 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
873 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
875 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
877 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
879 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
881 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
883 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
885 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
887 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
889 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
891 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
893 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
895 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
897 writeSectionContent(SHeader, *S, CBA); in initSectionHeaders()
973 ContiguousBlobAccumulator &CBA, in initSymtabSectionHeader() argument
1020 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign, in initSymtabSectionHeader()
1025 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size); in initSymtabSectionHeader()
1032 CBA.write((const char *)Syms.data(), SHeader.sh_size); in initSymtabSectionHeader()
1038 ContiguousBlobAccumulator &CBA, in initStrtabSectionHeader() argument
1047 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign, in initStrtabSectionHeader()
1051 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size); in initStrtabSectionHeader()
1053 if (raw_ostream *OS = CBA.getRawOS(STB.getSize())) in initStrtabSectionHeader()
1077 ContiguousBlobAccumulator &CBA) { in emitDWARF() argument
1081 raw_ostream *OS = CBA.getRawOS(0); in emitDWARF()
1085 uint64_t BeginOffset = CBA.tell(); in emitDWARF()
1091 return CBA.tell() - BeginOffset; in emitDWARF()
1096 ContiguousBlobAccumulator &CBA, in initDWARFSectionHeader() argument
1101 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign, in initDWARFSectionHeader()
1113 emitDWARF<ELFT>(SHeader, Name, *Doc.DWARF, CBA)) in initDWARFSectionHeader()
1119 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size); in initDWARFSectionHeader()
1240 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1250 CBA.writeZeros(*S.Size); in writeSectionContent()
1256 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1270 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1292 CBA.write((const char *)&REntry, sizeof(REntry)); in writeSectionContent()
1298 CBA.write((const char *)&REntry, sizeof(REntry)); in writeSectionContent()
1309 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1317 CBA.write<uintX_t>(E, ELFT::TargetEndianness); in writeSectionContent()
1326 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1328 SHeader.sh_size = writeContent(CBA, Shndx.Content, Shndx.Size); in writeSectionContent()
1336 CBA.write<uint32_t>(E, ELFT::TargetEndianness); in writeSectionContent()
1343 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1360 CBA.write<uint32_t>(SectionIndex, ELFT::TargetEndianness); in writeSectionContent()
1368 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1373 CBA.write<uint16_t>(Version, ELFT::TargetEndianness); in writeSectionContent()
1380 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1385 CBA.write<uintX_t>(E.Address, ELFT::TargetEndianness); in writeSectionContent()
1386 SHeader.sh_size += sizeof(uintX_t) + CBA.writeULEB128(E.Size); in writeSectionContent()
1393 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1418 CBA.write(E.Version); in writeSectionContent()
1419 CBA.write(E.Feature); in writeSectionContent()
1431 CBA.write<uintX_t>(E.Address, ELFT::TargetEndianness); in writeSectionContent()
1436 SHeader.sh_size += sizeof(uintX_t) + CBA.writeULEB128(NumBlocks); in writeSectionContent()
1441 SHeader.sh_size += CBA.writeULEB128(BBE.ID); in writeSectionContent()
1442 SHeader.sh_size += CBA.writeULEB128(BBE.AddressOffset) + in writeSectionContent()
1443 CBA.writeULEB128(BBE.Size) + in writeSectionContent()
1444 CBA.writeULEB128(BBE.Metadata); in writeSectionContent()
1453 SHeader.sh_size += CBA.writeULEB128(*PGOEntry.FuncEntryCount); in writeSectionContent()
1469 SHeader.sh_size += CBA.writeULEB128(*PGOBBE.BBFreq); in writeSectionContent()
1471 SHeader.sh_size += CBA.writeULEB128(PGOBBE.Successors->size()); in writeSectionContent()
1473 SHeader.sh_size += CBA.writeULEB128(ID) + CBA.writeULEB128(BrProb); in writeSectionContent()
1482 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1487 CBA.write(LO.Key.data(), LO.Key.size()); in writeSectionContent()
1488 CBA.write('\0'); in writeSectionContent()
1489 CBA.write(LO.Value.data(), LO.Value.size()); in writeSectionContent()
1490 CBA.write('\0'); in writeSectionContent()
1498 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1503 CBA.write(Lib.data(), Lib.size()); in writeSectionContent()
1504 CBA.write('\0'); in writeSectionContent()
1511 ELFState<ELFT>::alignToOffset(ContiguousBlobAccumulator &CBA, uint64_t Align, in alignToOffset() argument
1513 uint64_t CurrentOffset = CBA.getOffset(); in alignToOffset()
1529 CBA.writeZeros(AlignedOffset - CurrentOffset); in alignToOffset()
1536 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1541 CBA.write<uint64_t>(E.Weight, ELFT::TargetEndianness); in writeSectionContent()
1549 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1553 CBA.write<uint32_t>( in writeSectionContent()
1556 CBA.write<uint32_t>( in writeSectionContent()
1561 CBA.write<uint32_t>(Val, ELFT::TargetEndianness); in writeSectionContent()
1563 CBA.write<uint32_t>(Val, ELFT::TargetEndianness); in writeSectionContent()
1571 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1597 CBA.write((const char *)&VerDef, sizeof(Elf_Verdef)); in writeSectionContent()
1606 CBA.write((const char *)&VernAux, sizeof(Elf_Verdaux)); in writeSectionContent()
1617 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1640 CBA.write((const char *)&VerNeed, sizeof(Elf_Verneed)); in writeSectionContent()
1654 CBA.write((const char *)&VernAux, sizeof(Elf_Vernaux)); in writeSectionContent()
1665 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1670 CBA.write<uint32_t>(E.Offset, ELFT::TargetEndianness); in writeSectionContent()
1671 CBA.write<uint32_t>(E.Value, ELFT::TargetEndianness); in writeSectionContent()
1679 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1698 CBA.write((const char *)&Flags, sizeof(Flags)); in writeSectionContent()
1704 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1712 CBA.write<uintX_t>(DE.Tag, ELFT::TargetEndianness); in writeSectionContent()
1713 CBA.write<uintX_t>(DE.Val, ELFT::TargetEndianness); in writeSectionContent()
1721 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1727 CBA.writeULEB128(toSymbolIndex(Sym, Section.Name, /*IsDynamic=*/false)); in writeSectionContent()
1733 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1737 uint64_t Offset = CBA.tell(); in writeSectionContent()
1741 CBA.write<uint32_t>(0, ELFT::TargetEndianness); in writeSectionContent()
1743 CBA.write<uint32_t>(NE.Name.size() + 1, ELFT::TargetEndianness); in writeSectionContent()
1747 CBA.write<uint32_t>(0, ELFT::TargetEndianness); in writeSectionContent()
1749 CBA.write<uint32_t>(NE.Desc.binary_size(), ELFT::TargetEndianness); in writeSectionContent()
1752 CBA.write<uint32_t>(NE.Type, ELFT::TargetEndianness); in writeSectionContent()
1756 CBA.write(NE.Name.data(), NE.Name.size()); in writeSectionContent()
1757 CBA.write('\0'); in writeSectionContent()
1758 CBA.padToAlignment(4); in writeSectionContent()
1763 CBA.writeAsBinary(NE.Desc); in writeSectionContent()
1764 CBA.padToAlignment(4); in writeSectionContent()
1768 SHeader.sh_size = CBA.tell() - Offset; in writeSectionContent()
1774 ContiguousBlobAccumulator &CBA) { in writeSectionContent() argument
1786 CBA.write<uint32_t>(*Section.Header->NBuckets, ELFT::TargetEndianness); in writeSectionContent()
1788 CBA.write<uint32_t>(Section.HashBuckets->size(), ELFT::TargetEndianness); in writeSectionContent()
1792 CBA.write<uint32_t>(Section.Header->SymNdx, ELFT::TargetEndianness); in writeSectionContent()
1797 CBA.write<uint32_t>(*Section.Header->MaskWords, ELFT::TargetEndianness); in writeSectionContent()
1799 CBA.write<uint32_t>(Section.BloomFilter->size(), ELFT::TargetEndianness); in writeSectionContent()
1802 CBA.write<uint32_t>(Section.Header->Shift2, ELFT::TargetEndianness); in writeSectionContent()
1806 CBA.write<uintX_t>(Val, ELFT::TargetEndianness); in writeSectionContent()
1810 CBA.write<uint32_t>(Val, ELFT::TargetEndianness); in writeSectionContent()
1814 CBA.write<uint32_t>(Val, ELFT::TargetEndianness); in writeSectionContent()
1824 ContiguousBlobAccumulator &CBA) { in writeFill() argument
1827 CBA.writeZeros(Fill.Size); in writeFill()
1834 CBA.writeAsBinary(*Fill.Pattern); in writeFill()
1835 CBA.writeAsBinary(*Fill.Pattern, Fill.Size - Written); in writeFill()
2001 ContiguousBlobAccumulator CBA(SectionContentBeginOffset, MaxSize); in writeELF() local
2004 State.initSectionHeaders(SHeaders, CBA); in writeELF()
2009 bool ReachedLimit = CBA.getOffset() > MaxSize; in writeELF()
2010 if (Error E = CBA.takeLimitError()) { in writeELF()
2029 CBA.updateDataAt(*SHT.Offset, SHeaders.data(), in writeELF()
2032 CBA.writeBlobToStream(OS); in writeELF()