/* Reads the header from a WIM file. */
int
-read_header(const tchar *filename, int in_fd,
- struct wim_header *hdr, int open_flags)
+read_header(const tchar *filename, int in_fd, struct wim_header *hdr)
{
struct wim_header_disk disk_hdr _aligned_attribute(8);
+ BUILD_BUG_ON(sizeof(struct wim_header_disk) != WIM_HEADER_DISK_SIZE);
+
DEBUG("Reading WIM header from \"%"TS"\"", filename);
if (full_pread(in_fd, &disk_hdr, sizeof(disk_hdr), 0) != sizeof(disk_hdr)) {
return WIMLIB_ERR_NOT_A_WIM_FILE;
}
- BUILD_BUG_ON(sizeof(struct wim_header_disk) != WIM_HEADER_DISK_SIZE);
if (le32_to_cpu(disk_hdr.hdr_size) != sizeof(struct wim_header_disk)) {
ERROR("\"%"TS"\": Header size is invalid (%u bytes)",
filename, le32_to_cpu(disk_hdr.hdr_size));
return WIMLIB_ERR_INVALID_PART_NUMBER;
}
- if (!(open_flags & WIMLIB_OPEN_FLAG_SPLIT_OK) && hdr->total_parts != 1)
- {
- ERROR("\"%"TS"\": This WIM is part %u of a %u-part WIM",
- filename, hdr->part_number, hdr->total_parts);
- return WIMLIB_ERR_SPLIT_UNSUPPORTED;
- }
-
hdr->image_count = le32_to_cpu(disk_hdr.image_count);
DEBUG("part_number = %u, total_parts = %u, image_count = %u",