@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		StructureDataType struct = new StructureDataType("dyld_chained_starts_in_segment", 0);
		struct.add(DWORD, "size", "size of this (amount kernel needs to copy)");
		struct.add(WORD, "page_size", "0x1000 or 0x4000");
		struct.add(WORD, "pointer_format", "DYLD_CHAINED_PTR_*");
		struct.add(IBO64, "segment_offset", "offset in memory to start of segment");
		struct.add(DWORD, "max_valid_pointer",
			"for 32-bit OS, any value beyond this is not a pointer");
		struct.add(WORD, "page_count", "how many pages are in array");
		struct.add(new ArrayDataType(WORD, pageCount, 1), "page_starts",
			"each entry is offset in each page of first element in chain or DYLD_CHAINED_PTR_START_NONE if no fixups on page");
		struct.setCategoryPath(new CategoryPath(MachConstants.DATA_TYPE_CATEGORY));
		return struct;
	}
Marks up this data structure with data structures and comments

@param program The {@link Program} to mark up
@param address The {@link Address} of this data structure
@param header The Mach-O header
@param monitor A cancellable task monitor
@param log The log
@throws CancelledException if the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/commands/chained/DyldChainedStartsInSegment.java