Lines Matching defs:Doc
117 const ELFYAML::Object &Doc;
143 unsigned getDotSymTabSecNo() const { return Doc.Sections.size() + 1; }
144 unsigned getDotStrTabSecNo() const { return Doc.Sections.size() + 2; }
145 unsigned getDotShStrTabSecNo() const { return Doc.Sections.size() + 3; }
146 unsigned getSectionCount() const { return Doc.Sections.size() + 4; }
148 ELFState(const ELFYAML::Object &D) : Doc(D) {}
151 static int writeELF(raw_ostream &OS, const ELFYAML::Object &Doc);
167 Header.e_ident[EI_OSABI] = Doc.Header.OSABI;
169 Header.e_type = Doc.Header.Type;
170 Header.e_machine = Doc.Header.Machine;
172 Header.e_entry = Doc.Header.Entry;
173 Header.e_flags = Doc.Header.Flags;
191 for (const auto &Sec : Doc.Sections)
195 for (const auto &Sec : Doc.Sections) {
246 SHeader.sh_info = Doc.Symbols.Local.size() + 1;
258 for (const auto &Sym : Doc.Symbols.Local)
260 for (const auto &Sym : Doc.Symbols.Global)
262 for (const auto &Sym : Doc.Symbols.Weak)
266 addSymbols(Doc.Symbols.Local, Syms, ELF::STB_LOCAL);
267 addSymbols(Doc.Symbols.Global, Syms, ELF::STB_GLOBAL);
268 addSymbols(Doc.Symbols.Weak, Syms, ELF::STB_WEAK);
376 for (unsigned i = 0, e = Doc.Sections.size(); i != e; ++i) {
377 StringRef Name = Doc.Sections[i]->Name;
407 int ELFState<ELFT>::writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) {
408 ELFState<ELFT> State(Doc);
413 if (!State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Local) ||
414 !State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Global) ||
415 !State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Weak))
430 // Doc might not contain .symtab, .strtab and .shstrtab sections,
463 static bool is64Bit(const ELFYAML::Object &Doc) {
464 return Doc.Header.Class == ELFYAML::ELF_ELFCLASS(ELF::ELFCLASS64);
467 static bool isLittleEndian(const ELFYAML::Object &Doc) {
468 return Doc.Header.Data == ELFYAML::ELF_ELFDATA(ELF::ELFDATA2LSB);
472 ELFYAML::Object Doc;
473 YIn >> Doc;
483 Doc)) {
484 if (isLittleEndian(Doc))
485 return ELFState<LE64>::writeELF(Out, Doc);
487 return ELFState<BE64>::writeELF(Out, Doc);
489 if (isLittleEndian(Doc))
490 return ELFState<LE32>::writeELF(Out, Doc);
492 return ELFState<BE32>::writeELF(Out, Doc);