private void markupHeaders(CoffFileHeader header, Program program, FileBytes fileBytes,
			MessageLog log, TaskMonitor monitor) {
		monitor.setMessage("Marking up headers...");
		try {
			Map<Long, DataType> dtMap = new HashMap<>();
			long blockSize = 0;

			// Header
			dtMap.put(blockSize, header.toDataType());
			blockSize += header.sizeof();

			// Optional Header
			AoutHeader optionalHeader = header.getOptionalHeader();
			if (header.getOptionalHeader() != null) {
				dtMap.put(blockSize, optionalHeader.toDataType());
				blockSize += header.getOptionalHeaderSize();
			}

			// Sections
			for (CoffSectionHeader section : header.getSections()) {
				DataType dt = section.toDataType();
				dtMap.put(blockSize, dt);
				blockSize += dt.getLength();
			}

			// Create memory block
			Address headerSpaceAddr = AddressSpace.OTHER_SPACE.getAddress(0);
			MemoryBlock headerBlock =
				MemoryBlockUtils.createInitializedBlock(program, true, "HEADER", headerSpaceAddr,
					fileBytes, 0, blockSize, "", "", false, false, false, log);
			Address addr = headerBlock.getStart();

			// Create data
			for (long offset : dtMap.keySet()) {
				DataUtilities.createData(program, addr.add(offset), dtMap.get(offset), -1,
					DataUtilities.ClearDataMode.CHECK_FOR_SPACE);
			}

		}
		catch (Exception e) {
			log.appendMsg("Failed to markup headers");
		}
	}
Query a section header for alignment information. The base version of this method assumes 
no alignment information is stored in the section header. Subclasses may implement a 
platform-specific check for alignment information.

@param section header object for the section 
@return the alignment requested by the section
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/CoffLoader.java