/* Temporary flag. */
u32 raw_copy_ok : 1;
+
+ /* Compression type of this resource. */
+ u32 compression_type : 22;
+
+ /* Compression chunk size of this resource. Irrelevant if the resource
+ * is uncompressed. */
+ u32 chunk_size;
};
/* On-disk version of a WIM resource header. */
* the chunks (4 bytes per entry). */
} _packed_attribute;
+static inline unsigned int
+get_chunk_entry_size(u64 res_size, bool is_alt)
+{
+ if (res_size <= UINT32_MAX || is_alt)
+ return 4;
+ else
+ return 8;
+}
+
/* Functions to read streams */
extern int
wim_reshdr_to_data(const struct wim_reshdr *reshdr,
WIMStruct *wim, void **buf_ret);
+extern int
+wim_reshdr_to_hash(const struct wim_reshdr *reshdr, WIMStruct *wim,
+ u8 hash[SHA1_HASH_SIZE]);
+
extern int
skip_wim_stream(struct wim_lookup_table_entry *lte);