Lines Matching full:header

50   bool is64Bit() const { return COFF::is64Bit(Obj.Header.Machine); }
53 return Obj.OptionalHeader->Header.FileAlignment;
71 std::copy(Name.begin(), Name.end(), Sec.Header.Name);
80 Sec.Header.Name[0] = '/';
81 std::copy(str.begin(), str.end(), Sec.Header.Name + 1);
93 Sec.Header.Characteristics |= (Log2_32(Sec.Alignment) + 1) << 20;
105 std::copy(Name.begin(), Name.end(), Sym.Header.Name);
109 *reinterpret_cast<support::aligned_ulittle32_t *>(Sym.Header.Name + 4) =
113 Sym.Header.Type = Sym.SimpleType;
114 Sym.Header.Type |= Sym.ComplexType << COFF::SCT_COMPLEX_TYPE_SHIFT;
162 CP.Obj.Header.SizeOfOptionalHeader =
164 CP.Obj.OptionalHeader->Header.NumberOfRvaAndSize;
197 // The section table starts immediately after the header, including the
198 // optional header.
200 CP.getHeaderSize() + CP.Obj.Header.SizeOfOptionalHeader;
247 S.Header.SizeOfRawData = DataSize;
249 S.Header.SizeOfRawData =
250 alignTo(S.Header.SizeOfRawData, CP.getFileAlignment());
251 S.Header.PointerToRawData = CurrentSectionDataOffset;
252 CurrentSectionDataOffset += S.Header.SizeOfRawData;
254 S.Header.PointerToRelocations = CurrentSectionDataOffset;
255 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL) {
256 S.Header.NumberOfRelocations = 0xffff;
259 S.Header.NumberOfRelocations = S.Relocations.size();
265 S.Header.PointerToRawData = 0;
290 i->Header.NumberOfAuxSymbols = NumberOfAuxSymbols;
294 // Store all the allocated start addresses in the header.
295 CP.Obj.Header.NumberOfSections = CP.Obj.Sections.size();
296 CP.Obj.Header.NumberOfSymbols = NumberOfSymbols;
298 CP.Obj.Header.PointerToSymbolTable = SymbolTableStart;
300 CP.Obj.Header.PointerToSymbolTable = 0;
344 T Header) {
345 memset(Header, 0, sizeof(*Header));
346 Header->Magic = Magic;
347 Header->SectionAlignment = CP.Obj.OptionalHeader->Header.SectionAlignment;
348 Header->FileAlignment = CP.Obj.OptionalHeader->Header.FileAlignment;
352 Header->FileAlignment);
353 uint32_t SizeOfImage = alignTo(SizeOfHeaders, Header->SectionAlignment);
356 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_CODE)
357 SizeOfCode += S.Header.SizeOfRawData;
358 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA)
359 SizeOfInitializedData += S.Header.SizeOfRawData;
360 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
361 SizeOfUninitializedData += S.Header.SizeOfRawData;
363 Header->BaseOfCode = S.Header.VirtualAddress; // RVA
365 BaseOfData = S.Header.VirtualAddress; // RVA
366 if (S.Header.VirtualAddress)
367 SizeOfImage += alignTo(S.Header.VirtualSize, Header->SectionAlignment);
369 Header->SizeOfCode = SizeOfCode;
370 Header->SizeOfInitializedData = SizeOfInitializedData;
371 Header->SizeOfUninitializedData = SizeOfUninitializedData;
372 Header->AddressOfEntryPoint =
373 CP.Obj.OptionalHeader->Header.AddressOfEntryPoint; // RVA
374 Header->ImageBase = CP.Obj.OptionalHeader->Header.ImageBase;
375 Header->MajorOperatingSystemVersion =
376 CP.Obj.OptionalHeader->Header.MajorOperatingSystemVersion;
377 Header->MinorOperatingSystemVersion =
378 CP.Obj.OptionalHeader->Header.MinorOperatingSystemVersion;
379 Header->MajorImageVersion = CP.Obj.OptionalHeader->Header.MajorImageVersion;
380 Header->MinorImageVersion = CP.Obj.OptionalHeader->Header.MinorImageVersion;
381 Header->MajorSubsystemVersion =
382 CP.Obj.OptionalHeader->Header.MajorSubsystemVersion;
383 Header->MinorSubsystemVersion =
384 CP.Obj.OptionalHeader->Header.MinorSubsystemVersion;
385 Header->SizeOfImage = SizeOfImage;
386 Header->SizeOfHeaders = SizeOfHeaders;
387 Header->Subsystem = CP.Obj.OptionalHeader->Header.Subsystem;
388 Header->DLLCharacteristics = CP.Obj.OptionalHeader->Header.DLLCharacteristics;
389 Header->SizeOfStackReserve = CP.Obj.OptionalHeader->Header.SizeOfStackReserve;
390 Header->SizeOfStackCommit = CP.Obj.OptionalHeader->Header.SizeOfStackCommit;
391 Header->SizeOfHeapReserve = CP.Obj.OptionalHeader->Header.SizeOfHeapReserve;
392 Header->SizeOfHeapCommit = CP.Obj.OptionalHeader->Header.SizeOfHeapCommit;
393 Header->NumberOfRvaAndSize = CP.Obj.OptionalHeader->Header.NumberOfRvaAndSize;
426 << binary_le(CP.Obj.Header.Machine)
427 << binary_le(CP.Obj.Header.TimeDateStamp);
430 << zeros(uint32_t(0)) << binary_le(CP.Obj.Header.NumberOfSections)
431 << binary_le(CP.Obj.Header.PointerToSymbolTable)
432 << binary_le(CP.Obj.Header.NumberOfSymbols);
434 OS << binary_le(CP.Obj.Header.Machine)
435 << binary_le(static_cast<int16_t>(CP.Obj.Header.NumberOfSections))
436 << binary_le(CP.Obj.Header.TimeDateStamp)
437 << binary_le(CP.Obj.Header.PointerToSymbolTable)
438 << binary_le(CP.Obj.Header.NumberOfSymbols)
439 << binary_le(CP.Obj.Header.SizeOfOptionalHeader)
440 << binary_le(CP.Obj.Header.Characteristics);
454 for (uint32_t I = 0; I < CP.Obj.OptionalHeader->Header.NumberOfRvaAndSize;
472 OS.write(S.Header.Name, COFF::NameSize);
473 OS << binary_le(S.Header.VirtualSize)
474 << binary_le(S.Header.VirtualAddress)
475 << binary_le(S.Header.SizeOfRawData)
476 << binary_le(S.Header.PointerToRawData)
477 << binary_le(S.Header.PointerToRelocations)
478 << binary_le(S.Header.PointerToLineNumbers)
479 << binary_le(S.Header.NumberOfRelocations)
480 << binary_le(S.Header.NumberOfLineNumbers)
481 << binary_le(S.Header.Characteristics);
489 CurSymbol += 1 + Sym.Header.NumberOfAuxSymbols;
494 if (S.Header.SizeOfRawData == 0 || S.Header.PointerToRawData == 0)
496 assert(S.Header.PointerToRawData >= OS.tell());
497 OS.write_zeros(S.Header.PointerToRawData - OS.tell());
501 assert(S.Header.SizeOfRawData >= S.SectionData.binary_size());
502 OS.write_zeros(S.Header.PointerToRawData + S.Header.SizeOfRawData -
504 if (S.Header.Characteristics & COFF::IMAGE_SCN_LNK_NRELOC_OVFL)
528 OS.write(i->Header.Name, COFF::NameSize);
529 OS << binary_le(i->Header.Value);
531 OS << binary_le(i->Header.SectionNumber);
533 OS << binary_le(static_cast<int16_t>(i->Header.SectionNumber));
534 OS << binary_le(i->Header.Type) << binary_le(i->Header.StorageClass)
535 << binary_le(i->Header.NumberOfAuxSymbols);
588 if (CP.Obj.Header.PointerToSymbolTable)
633 ErrHandler("failed to layout optional header for COFF file");