Lines Matching full:header

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