Lines Matching refs:Header

51     return Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_AMD64 ||
52 Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_ARM64;
56 return Obj.OptionalHeader->Header.FileAlignment;
78 std::copy(Name.begin(), Name.end(), Sec.Header.Name);
87 Sec.Header.Name[0] = '/';
88 std::copy(str.begin(), str.end(), Sec.Header.Name + 1);
100 Sec.Header.Characteristics |= (Log2_32(Sec.Alignment) + 1) << 20;
116 std::copy(Name.begin(), Name.end(), Sym.Header.Name);
120 *reinterpret_cast<support::aligned_ulittle32_t *>(Sym.Header.Name + 4) =
124 Sym.Header.Type = Sym.SimpleType;
125 Sym.Header.Type |= Sym.ComplexType << COFF::SCT_COMPLEX_TYPE_SHIFT;
173 CP.Obj.Header.SizeOfOptionalHeader =
211 CP.getHeaderSize() + CP.Obj.Header.SizeOfOptionalHeader;
255 S.Header.SizeOfRawData = S.SectionData.binary_size();
257 S.Header.SizeOfRawData =
258 alignTo(S.Header.SizeOfRawData, CP.getFileAlignment());
259 S.Header.PointerToRawData = CurrentSectionDataOffset;
260 CurrentSectionDataOffset += S.Header.SizeOfRawData;
262 S.Header.PointerToRelocations = CurrentSectionDataOffset;
263 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL) {
264 S.Header.NumberOfRelocations = 0xffff;
267 S.Header.NumberOfRelocations = S.Relocations.size();
273 S.Header.PointerToRawData = 0;
298 i->Header.NumberOfAuxSymbols = NumberOfAuxSymbols;
303 CP.Obj.Header.NumberOfSections = CP.Obj.Sections.size();
304 CP.Obj.Header.NumberOfSymbols = NumberOfSymbols;
306 CP.Obj.Header.PointerToSymbolTable = SymbolTableStart;
308 CP.Obj.Header.PointerToSymbolTable = 0;
352 T Header) {
353 memset(Header, 0, sizeof(*Header));
354 Header->Magic = Magic;
355 Header->SectionAlignment = CP.Obj.OptionalHeader->Header.SectionAlignment;
356 Header->FileAlignment = CP.Obj.OptionalHeader->Header.FileAlignment;
360 Header->FileAlignment);
361 uint32_t SizeOfImage = alignTo(SizeOfHeaders, Header->SectionAlignment);
364 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_CODE)
365 SizeOfCode += S.Header.SizeOfRawData;
366 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA)
367 SizeOfInitializedData += S.Header.SizeOfRawData;
368 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
369 SizeOfUninitializedData += S.Header.SizeOfRawData;
371 Header->BaseOfCode = S.Header.VirtualAddress; // RVA
373 BaseOfData = S.Header.VirtualAddress; // RVA
374 if (S.Header.VirtualAddress)
375 SizeOfImage += alignTo(S.Header.VirtualSize, Header->SectionAlignment);
377 Header->SizeOfCode = SizeOfCode;
378 Header->SizeOfInitializedData = SizeOfInitializedData;
379 Header->SizeOfUninitializedData = SizeOfUninitializedData;
380 Header->AddressOfEntryPoint =
381 CP.Obj.OptionalHeader->Header.AddressOfEntryPoint; // RVA
382 Header->ImageBase = CP.Obj.OptionalHeader->Header.ImageBase;
383 Header->MajorOperatingSystemVersion =
384 CP.Obj.OptionalHeader->Header.MajorOperatingSystemVersion;
385 Header->MinorOperatingSystemVersion =
386 CP.Obj.OptionalHeader->Header.MinorOperatingSystemVersion;
387 Header->MajorImageVersion = CP.Obj.OptionalHeader->Header.MajorImageVersion;
388 Header->MinorImageVersion = CP.Obj.OptionalHeader->Header.MinorImageVersion;
389 Header->MajorSubsystemVersion =
390 CP.Obj.OptionalHeader->Header.MajorSubsystemVersion;
391 Header->MinorSubsystemVersion =
392 CP.Obj.OptionalHeader->Header.MinorSubsystemVersion;
393 Header->SizeOfImage = SizeOfImage;
394 Header->SizeOfHeaders = SizeOfHeaders;
395 Header->Subsystem = CP.Obj.OptionalHeader->Header.Subsystem;
396 Header->DLLCharacteristics = CP.Obj.OptionalHeader->Header.DLLCharacteristics;
397 Header->SizeOfStackReserve = CP.Obj.OptionalHeader->Header.SizeOfStackReserve;
398 Header->SizeOfStackCommit = CP.Obj.OptionalHeader->Header.SizeOfStackCommit;
399 Header->SizeOfHeapReserve = CP.Obj.OptionalHeader->Header.SizeOfHeapReserve;
400 Header->SizeOfHeapCommit = CP.Obj.OptionalHeader->Header.SizeOfHeapCommit;
401 Header->NumberOfRvaAndSize = COFF::NUM_DATA_DIRECTORIES + 1;
434 << binary_le(CP.Obj.Header.Machine)
435 << binary_le(CP.Obj.Header.TimeDateStamp);
438 << zeros(uint32_t(0)) << binary_le(CP.Obj.Header.NumberOfSections)
439 << binary_le(CP.Obj.Header.PointerToSymbolTable)
440 << binary_le(CP.Obj.Header.NumberOfSymbols);
442 OS << binary_le(CP.Obj.Header.Machine)
443 << binary_le(static_cast<int16_t>(CP.Obj.Header.NumberOfSections))
444 << binary_le(CP.Obj.Header.TimeDateStamp)
445 << binary_le(CP.Obj.Header.PointerToSymbolTable)
446 << binary_le(CP.Obj.Header.NumberOfSymbols)
447 << binary_le(CP.Obj.Header.SizeOfOptionalHeader)
448 << binary_le(CP.Obj.Header.Characteristics);
481 OS.write(i->Header.Name, COFF::NameSize);
482 OS << binary_le(i->Header.VirtualSize)
483 << binary_le(i->Header.VirtualAddress)
484 << binary_le(i->Header.SizeOfRawData)
485 << binary_le(i->Header.PointerToRawData)
486 << binary_le(i->Header.PointerToRelocations)
487 << binary_le(i->Header.PointerToLineNumbers)
488 << binary_le(i->Header.NumberOfRelocations)
489 << binary_le(i->Header.NumberOfLineNumbers)
490 << binary_le(i->Header.Characteristics);
500 CurSymbol += 1 + I->Header.NumberOfAuxSymbols;
505 if (S.Header.SizeOfRawData == 0 || S.Header.PointerToRawData == 0)
507 assert(S.Header.PointerToRawData >= OS.tell());
508 OS.write_zeros(S.Header.PointerToRawData - OS.tell());
510 assert(S.Header.SizeOfRawData >= S.SectionData.binary_size());
511 OS.write_zeros(S.Header.SizeOfRawData - S.SectionData.binary_size());
512 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL)
536 OS.write(i->Header.Name, COFF::NameSize);
537 OS << binary_le(i->Header.Value);
539 OS << binary_le(i->Header.SectionNumber);
541 OS << binary_le(static_cast<int16_t>(i->Header.SectionNumber));
542 OS << binary_le(i->Header.Type) << binary_le(i->Header.StorageClass)
543 << binary_le(i->Header.NumberOfAuxSymbols);
596 if (CP.Obj.Header.PointerToSymbolTable)