Lines Matching refs:Header

50     return Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_AMD64 ||  in is64Bit()
51 Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_ARM64; in is64Bit()
55 return Obj.OptionalHeader->Header.FileAlignment; in getFileAlignment()
77 std::copy(Name.begin(), Name.end(), Sec.Header.Name); in parseSections()
86 Sec.Header.Name[0] = '/'; in parseSections()
87 std::copy(str.begin(), str.end(), Sec.Header.Name + 1); in parseSections()
99 Sec.Header.Characteristics |= (Log2_32(Sec.Alignment) + 1) << 20; in parseSections()
115 std::copy(Name.begin(), Name.end(), Sym.Header.Name); in parseSymbols()
119 *reinterpret_cast<support::aligned_ulittle32_t *>(Sym.Header.Name + 4) = in parseSymbols()
123 Sym.Header.Type = Sym.SimpleType; in parseSymbols()
124 Sym.Header.Type |= Sym.ComplexType << COFF::SCT_COMPLEX_TYPE_SHIFT; in parseSymbols()
172 CP.Obj.Header.SizeOfOptionalHeader = in layoutOptionalHeader()
210 CP.getHeaderSize() + CP.Obj.Header.SizeOfOptionalHeader; in layoutCOFF()
254 S.Header.SizeOfRawData = S.SectionData.binary_size(); in layoutCOFF()
256 S.Header.SizeOfRawData = in layoutCOFF()
257 alignTo(S.Header.SizeOfRawData, CP.getFileAlignment()); in layoutCOFF()
258 S.Header.PointerToRawData = CurrentSectionDataOffset; in layoutCOFF()
259 CurrentSectionDataOffset += S.Header.SizeOfRawData; in layoutCOFF()
261 S.Header.PointerToRelocations = CurrentSectionDataOffset; in layoutCOFF()
262 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL) { in layoutCOFF()
263 S.Header.NumberOfRelocations = 0xffff; in layoutCOFF()
266 S.Header.NumberOfRelocations = S.Relocations.size(); in layoutCOFF()
272 S.Header.PointerToRawData = 0; in layoutCOFF()
297 i->Header.NumberOfAuxSymbols = NumberOfAuxSymbols; in layoutCOFF()
302 CP.Obj.Header.NumberOfSections = CP.Obj.Sections.size(); in layoutCOFF()
303 CP.Obj.Header.NumberOfSymbols = NumberOfSymbols; in layoutCOFF()
305 CP.Obj.Header.PointerToSymbolTable = SymbolTableStart; in layoutCOFF()
307 CP.Obj.Header.PointerToSymbolTable = 0; in layoutCOFF()
351 T Header) { in initializeOptionalHeader() argument
352 memset(Header, 0, sizeof(*Header)); in initializeOptionalHeader()
353 Header->Magic = Magic; in initializeOptionalHeader()
354 Header->SectionAlignment = CP.Obj.OptionalHeader->Header.SectionAlignment; in initializeOptionalHeader()
355 Header->FileAlignment = CP.Obj.OptionalHeader->Header.FileAlignment; in initializeOptionalHeader()
359 Header->FileAlignment); in initializeOptionalHeader()
360 uint32_t SizeOfImage = alignTo(SizeOfHeaders, Header->SectionAlignment); in initializeOptionalHeader()
363 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_CODE) in initializeOptionalHeader()
364 SizeOfCode += S.Header.SizeOfRawData; in initializeOptionalHeader()
365 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA) in initializeOptionalHeader()
366 SizeOfInitializedData += S.Header.SizeOfRawData; in initializeOptionalHeader()
367 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA) in initializeOptionalHeader()
368 SizeOfUninitializedData += S.Header.SizeOfRawData; in initializeOptionalHeader()
370 Header->BaseOfCode = S.Header.VirtualAddress; // RVA in initializeOptionalHeader()
372 BaseOfData = S.Header.VirtualAddress; // RVA in initializeOptionalHeader()
373 if (S.Header.VirtualAddress) in initializeOptionalHeader()
374 SizeOfImage += alignTo(S.Header.VirtualSize, Header->SectionAlignment); in initializeOptionalHeader()
376 Header->SizeOfCode = SizeOfCode; in initializeOptionalHeader()
377 Header->SizeOfInitializedData = SizeOfInitializedData; in initializeOptionalHeader()
378 Header->SizeOfUninitializedData = SizeOfUninitializedData; in initializeOptionalHeader()
379 Header->AddressOfEntryPoint = in initializeOptionalHeader()
380 CP.Obj.OptionalHeader->Header.AddressOfEntryPoint; // RVA in initializeOptionalHeader()
381 Header->ImageBase = CP.Obj.OptionalHeader->Header.ImageBase; in initializeOptionalHeader()
382 Header->MajorOperatingSystemVersion = in initializeOptionalHeader()
383 CP.Obj.OptionalHeader->Header.MajorOperatingSystemVersion; in initializeOptionalHeader()
384 Header->MinorOperatingSystemVersion = in initializeOptionalHeader()
385 CP.Obj.OptionalHeader->Header.MinorOperatingSystemVersion; in initializeOptionalHeader()
386 Header->MajorImageVersion = CP.Obj.OptionalHeader->Header.MajorImageVersion; in initializeOptionalHeader()
387 Header->MinorImageVersion = CP.Obj.OptionalHeader->Header.MinorImageVersion; in initializeOptionalHeader()
388 Header->MajorSubsystemVersion = in initializeOptionalHeader()
389 CP.Obj.OptionalHeader->Header.MajorSubsystemVersion; in initializeOptionalHeader()
390 Header->MinorSubsystemVersion = in initializeOptionalHeader()
391 CP.Obj.OptionalHeader->Header.MinorSubsystemVersion; in initializeOptionalHeader()
392 Header->SizeOfImage = SizeOfImage; in initializeOptionalHeader()
393 Header->SizeOfHeaders = SizeOfHeaders; in initializeOptionalHeader()
394 Header->Subsystem = CP.Obj.OptionalHeader->Header.Subsystem; in initializeOptionalHeader()
395 Header->DLLCharacteristics = CP.Obj.OptionalHeader->Header.DLLCharacteristics; in initializeOptionalHeader()
396 Header->SizeOfStackReserve = CP.Obj.OptionalHeader->Header.SizeOfStackReserve; in initializeOptionalHeader()
397 Header->SizeOfStackCommit = CP.Obj.OptionalHeader->Header.SizeOfStackCommit; in initializeOptionalHeader()
398 Header->SizeOfHeapReserve = CP.Obj.OptionalHeader->Header.SizeOfHeapReserve; in initializeOptionalHeader()
399 Header->SizeOfHeapCommit = CP.Obj.OptionalHeader->Header.SizeOfHeapCommit; in initializeOptionalHeader()
400 Header->NumberOfRvaAndSize = COFF::NUM_DATA_DIRECTORIES + 1; in initializeOptionalHeader()
433 << binary_le(CP.Obj.Header.Machine) in writeCOFF()
434 << binary_le(CP.Obj.Header.TimeDateStamp); in writeCOFF()
437 << zeros(uint32_t(0)) << binary_le(CP.Obj.Header.NumberOfSections) in writeCOFF()
438 << binary_le(CP.Obj.Header.PointerToSymbolTable) in writeCOFF()
439 << binary_le(CP.Obj.Header.NumberOfSymbols); in writeCOFF()
441 OS << binary_le(CP.Obj.Header.Machine) in writeCOFF()
442 << binary_le(static_cast<int16_t>(CP.Obj.Header.NumberOfSections)) in writeCOFF()
443 << binary_le(CP.Obj.Header.TimeDateStamp) in writeCOFF()
444 << binary_le(CP.Obj.Header.PointerToSymbolTable) in writeCOFF()
445 << binary_le(CP.Obj.Header.NumberOfSymbols) in writeCOFF()
446 << binary_le(CP.Obj.Header.SizeOfOptionalHeader) in writeCOFF()
447 << binary_le(CP.Obj.Header.Characteristics); in writeCOFF()
480 OS.write(i->Header.Name, COFF::NameSize); in writeCOFF()
481 OS << binary_le(i->Header.VirtualSize) in writeCOFF()
482 << binary_le(i->Header.VirtualAddress) in writeCOFF()
483 << binary_le(i->Header.SizeOfRawData) in writeCOFF()
484 << binary_le(i->Header.PointerToRawData) in writeCOFF()
485 << binary_le(i->Header.PointerToRelocations) in writeCOFF()
486 << binary_le(i->Header.PointerToLineNumbers) in writeCOFF()
487 << binary_le(i->Header.NumberOfRelocations) in writeCOFF()
488 << binary_le(i->Header.NumberOfLineNumbers) in writeCOFF()
489 << binary_le(i->Header.Characteristics); in writeCOFF()
499 CurSymbol += 1 + I->Header.NumberOfAuxSymbols; in writeCOFF()
504 if (S.Header.SizeOfRawData == 0 || S.Header.PointerToRawData == 0) in writeCOFF()
506 assert(S.Header.PointerToRawData >= OS.tell()); in writeCOFF()
507 OS.write_zeros(S.Header.PointerToRawData - OS.tell()); in writeCOFF()
509 assert(S.Header.SizeOfRawData >= S.SectionData.binary_size()); in writeCOFF()
510 OS.write_zeros(S.Header.SizeOfRawData - S.SectionData.binary_size()); in writeCOFF()
511 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL) in writeCOFF()
535 OS.write(i->Header.Name, COFF::NameSize); in writeCOFF()
536 OS << binary_le(i->Header.Value); in writeCOFF()
538 OS << binary_le(i->Header.SectionNumber); in writeCOFF()
540 OS << binary_le(static_cast<int16_t>(i->Header.SectionNumber)); in writeCOFF()
541 OS << binary_le(i->Header.Type) << binary_le(i->Header.StorageClass) in writeCOFF()
542 << binary_le(i->Header.NumberOfAuxSymbols); in writeCOFF()
595 if (CP.Obj.Header.PointerToSymbolTable) in writeCOFF()