@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		Structure structure = new StructureDataType("ext4_super_block", 0);
		structure.add(DWORD, "s_inodes_count", null);
		structure.add(DWORD, "s_blocks_count_lo", null);
		structure.add(DWORD, "s_r_blocks_count_lo", null);
		structure.add(DWORD, "s_free_blocks_count_lo", null);
		structure.add(DWORD, "s_free_inodes_count", null);
		structure.add(DWORD, "s_first_data_block", null);
		structure.add(DWORD, "s_log_block_size", null);
		structure.add(DWORD, "s_log_cluster_size", null);
		structure.add(DWORD, "s_blocks_per_group", null);
		structure.add(DWORD, "s_clusters_per_group", null);
		structure.add(DWORD, "s_inodes_per_group", null);
		structure.add(DWORD, "s_mtime", null);
		structure.add(DWORD, "s_wtime", null);
		structure.add(WORD, "s_mnt_count", null);
		structure.add(WORD, "s_max_mnt_count", null);
		structure.add(WORD, "s_magic", null);
		structure.add(WORD, "s_state", null);
		structure.add(WORD, "s_errors", null);
		structure.add(WORD, "s_minor_rev_level", null);
		structure.add(DWORD, "s_lastcheck", null);
		structure.add(DWORD, "s_checkinterval", null);
		structure.add(DWORD, "s_creator_os", null);
		structure.add(DWORD, "s_rev_level", null);
		structure.add(WORD, "s_def_resuid", null);
		structure.add(WORD, "s_def_resgid", null);
		structure.add(DWORD, "s_first_ino", null);
		structure.add(WORD, "s_inode_size", null);
		structure.add(WORD, "s_block_group_nr", null);
		structure.add(DWORD, "s_feature_compat", null);
		structure.add(DWORD, "s_feature_incompat", null);
		structure.add(DWORD, "s_feature_ro_compat", null);
		structure.add(new ArrayDataType(BYTE, 16, BYTE.getLength()), "s_uuid", null);
		structure.add(new ArrayDataType(BYTE, 16, BYTE.getLength()), "s_volume_name", null);
		structure.add(new ArrayDataType(BYTE, 64, BYTE.getLength()), "s_last_mounted", null);
		structure.add(DWORD, "s_algorithm_usage_bitmap", null);
		structure.add(BYTE, "s_prealloc_blocks", null);
		structure.add(BYTE, "s_prealloc_dir_blocks", null);
		structure.add(WORD, "s_reserved_gdt_blocks", null);
		structure.add(new ArrayDataType(BYTE, 16, BYTE.getLength()), "s_journal_uuid", null);
		structure.add(DWORD, "s_journal_inum", null);
		structure.add(DWORD, "s_journal_dev", null);
		structure.add(DWORD, "s_last_orphan", null);
		structure.add(new ArrayDataType(DWORD, 4, DWORD.getLength()), "s_hash_seed", null);
		structure.add(BYTE, "s_def_hash_version", null);
		structure.add(BYTE, "s_jnl_backup_type", null);
		structure.add(WORD, "s_desc_size", null);
		structure.add(DWORD, "s_default_mount_opts", null);
		structure.add(DWORD, "s_first_meta_bg", null);
		structure.add(DWORD, "s_mkfs_time", null);
		structure.add(new ArrayDataType(DWORD, 17, DWORD.getLength()), "s_jnl_blocks", null);
		structure.add(DWORD, "s_blocks_count_hi", null);
		structure.add(DWORD, "s_r_blocks_count_hi", null);
		structure.add(DWORD, "s_free_blocks_count_hi", null);
		structure.add(WORD, "s_min_extra_isize", null);
		structure.add(WORD, "s_want_extra_isize", null);
		structure.add(DWORD, "s_flags", null);
		structure.add(WORD, "s_raid_stride", null);
		structure.add(WORD, "s_mmp_interval", null);
		structure.add(QWORD, "s_mmp_block", null);
		structure.add(DWORD, "s_raid_stripe_width", null);
		structure.add(BYTE, "s_log_groups_per_flex", null);
		structure.add(BYTE, "s_checksum_type", null);
		structure.add(WORD, "s_reserved_pad", null);
		structure.add(QWORD, "s_kbytes_written", null);
		structure.add(DWORD, "s_snapshot_inum", null);
		structure.add(DWORD, "s_snapshot_id", null);
		structure.add(QWORD, "s_snapshot_r_blocks_count", null);
		structure.add(DWORD, "s_snapshot_list", null);
		structure.add(DWORD, "s_error_count", null);
		structure.add(DWORD, "s_first_error_time", null);
		structure.add(DWORD, "s_first_error_ino", null);
		structure.add(QWORD, "s_first_error_block", null);
		structure.add(new ArrayDataType(BYTE, 32, BYTE.getLength()), "s_first_error_func", null);
		structure.add(DWORD, "s_first_error_line", null);
		structure.add(DWORD, "s_last_error_time", null);
		structure.add(DWORD, "s_last_error_ino", null);
		structure.add(DWORD, "s_last_error_line", null);
		structure.add(QWORD, "s_last_error_block", null);
		structure.add(new ArrayDataType(BYTE, 32, BYTE.getLength()), "s_last_error_func", null);
		structure.add(new ArrayDataType(BYTE, 64, BYTE.getLength()), "s_mount_opts", null);
		structure.add(DWORD, "s_usr_quora_inum", null);
		structure.add(DWORD, "s_grp_quota_inum", null);
		structure.add(DWORD, "s_overhead_blocks", null);
		structure.add(new ArrayDataType(DWORD, 2, DWORD.getLength()), "s_backup_blocks", null);
		structure.add(new ArrayDataType(BYTE, 4, BYTE.getLength()), "s_encrypt_algos", null);
		structure.add(new ArrayDataType(BYTE, 16, BYTE.getLength()), "s_encrypt_pw_salt", null);
		structure.add(DWORD, "s_lpf_ino", null);
		structure.add(DWORD, "s_prj_quota_inum", null);
		structure.add(DWORD, "s_checksum_seed", null);
		structure.add(new ArrayDataType(DWORD, 98, DWORD.getLength()), "s_reserved", null);
		structure.add(DWORD, "s_checksum", null);
		return structure;
	}
Return the calculated block count by combining the s_blocks_count_lo and s_blocks_count_hi
@return the calculated block count by combining the s_blocks_count_lo and s_blocks_count_hi
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/Ext4SuperBlock.java