Home | History | Annotate | Download | only in LD

Lines Matching full:pinput

56 ELFReader<32, true>::readRegularSection(Input& pInput, SectionData& pSD) const
58 uint32_t offset = pInput.fileOffset() + pSD.getSection().offset();
61 Fragment* frag = IRBuilder::CreateRegion(pInput, offset, size);
67 bool ELFReader<32, true>::readSymbols(Input& pInput,
85 pInput.context()->addSymbol(LDSymbol::Null());
89 bool is_dyn_obj = (pInput.type()==Input::DynObj);
109 if (pInput.type() == Input::Object &&
112 if (NULL == pInput.context()->getSection(st_shndx))
120 ResolveInfo::Desc ld_desc = getSymDesc(st_shndx, pInput);
126 uint64_t ld_value = getSymValue(st_value, st_shndx, pInput);
134 section = pInput.context()->getSection(st_shndx);
148 pBuilder.AddSymbol(pInput,
212 bool ELFReader<32, true>::readRela(Input& pInput,
238 LDSymbol* symbol = pInput.context()->getSymbol(r_sym);
240 fatal(diag::err_cannot_read_symbol) << r_sym << pInput.path();
249 bool ELFReader<32, true>::readRel(Input& pInput,
273 LDSymbol* symbol = pInput.context()->getSymbol(r_sym);
275 fatal(diag::err_cannot_read_symbol) << r_sym << pInput.path();
331 ELFReader<32, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const
371 shdr_region = pInput.memArea()->request(pInput.fileOffset() + shoff,
383 pInput.memArea()->release(shdr_region);
393 shdr_region = pInput.memArea()->request(pInput.fileOffset() + shoff,
409 MemoryRegion* sect_name_region = pInput.memArea()->request(
410 pInput.fileOffset() + sh_offset, sh_size);
439 LDSection* section = IRBuilder::CreateELFHeader(pInput,
460 info->section->setLink(pInput.context()->getSection(info->sh_link));
464 info->section->setLink(pInput.context()->getSection(info->sh_info));
469 pInput.memArea()->release(shdr_region);
470 pInput.memArea()->release(sect_name_region);
477 ResolveInfo* ELFReader<32, true>::readSignature(Input& pInput,
485 uint32_t offset = pInput.fileOffset() + symtab->offset() +
488 pInput
507 MemoryRegion* strtab_region = pInput.memArea()->request(
508 pInput.fileOffset() + strtab->offset(), strtab->size());
515 result->setSource(pInput.type() == Input::DynObj);
517 result->setDesc(getSymDesc(st_shndx, pInput));
522 pInput.memArea()->release(symbol_region);
523 pInput.memArea()->release(strtab_region);
529 bool ELFReader<32, true>::readDynamic(Input& pInput) const
531 assert(pInput.type() == Input::DynObj);
532 const LDSection* dynamic_sect = pInput.context()->getSection(".dynamic");
541 MemoryRegion* dynamic_region = pInput.memArea()->request(
542 pInput.fileOffset() + dynamic_sect->offset(), dynamic_sect->size());
544 MemoryRegion* dynstr_region = pInput.memArea()->request(
545 pInput.fileOffset() + dynstr_sect->offset(), dynstr_sect->size());
571 pInput.setName(sys::fs::Path(dynstr + d_val).filename().native());
585 pInput.setName(pInput.path().filename().native());
587 pInput.memArea()->release(dynamic_region);
588 pInput.memArea()->release(dynstr_region);
617 ELFReader<64, true>::readRegularSection(Input& pInput, SectionData& pSD) const
619 uint64_t offset = pInput.fileOffset() + pSD.getSection().offset();
622 Fragment* frag = IRBuilder::CreateRegion(pInput, offset, size);
628 bool ELFReader<64, true>::readSymbols(Input& pInput,
646 pInput.context()->addSymbol(LDSymbol::Null());
650 bool is_dyn_obj = (pInput.type()==Input::DynObj);
670 if (pInput.type() == Input::Object &&
673 if (NULL == pInput.context()->getSection(st_shndx))
681 ResolveInfo::Desc ld_desc = getSymDesc(st_shndx, pInput);
687 uint64_t ld_value = getSymValue(st_value, st_shndx, pInput);
695 section = pInput.context()->getSection(st_shndx);
709 pBuilder.AddSymbol(pInput,
768 bool ELFReader<64, true>::readRela(Input& pInput,
794 LDSymbol* symbol = pInput.context()->getSymbol(r_sym);
796 fatal(diag::err_cannot_read_symbol) << r_sym << pInput.path();
805 bool ELFReader<64, true>::readRel(Input& pInput,
829 LDSymbol* symbol = pInput.context()->getSymbol(r_sym);
831 fatal(diag::err_cannot_read_symbol) << r_sym << pInput.path();
887 ELFReader<64, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const
927 shdr_region = pInput.memArea()->request(pInput.fileOffset() + shoff,
939 pInput.memArea()->release(shdr_region);
949 shdr_region = pInput.memArea()->request(pInput.fileOffset() + shoff,
965 MemoryRegion* sect_name_region = pInput.memArea()->request(
966 pInput.fileOffset() + sh_offset, sh_size);
995 LDSection* section = IRBuilder::CreateELFHeader(pInput,
1016 info->section->setLink(pInput.context()->getSection(info->sh_link));
1020 info->section->setLink(pInput.context()->getSection(info->sh_info));
1025 pInput.memArea()->release(shdr_region);
1026 pInput.memArea()->release(sect_name_region);
1033 ResolveInfo* ELFReader<64, true>::readSignature(Input& pInput,
1041 uint64_t offset = pInput.fileOffset() + symtab->offset() +
1044 pInput.memArea()->request(offset, sizeof(llvm::ELF::Elf64_Sym));
1063 MemoryRegion* strtab_region = pInput.memArea()->request(
1064 pInput.fileOffset() + strtab->offset(), strtab->size());
1071 result->setSource(pInput.type() == Input::DynObj);
1073 result->setDesc(getSymDesc(st_shndx, pInput));
1078 pInput.memArea()->release(symbol_region);
1079 pInput.memArea()->release(strtab_region);
1085 bool ELFReader<64, true>::readDynamic(Input& pInput) const
1087 assert(pInput.type() == Input::DynObj);
1088 const LDSection* dynamic_sect = pInput.context()->getSection(".dynamic");
1097 MemoryRegion* dynamic_region = pInput.memArea()->request(
1098 pInput.fileOffset() + dynamic_sect->offset(), dynamic_sect->size());
1100 MemoryRegion* dynstr_region = pInput.memArea()->request(
1101 pInput.fileOffset() + dynstr_sect->offset(), dynstr_sect->size());
1127 pInput.setName(sys::fs::Path(dynstr + d_val).filename().native());
1141 pInput.setName(pInput.path().filename().native());
1143 pInput.memArea()->release(dynamic_region);
1144 pInput.memArea()->release(dynstr_region);