X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fwim.h;h=03e0184ce40bf2dbd0830f4fc196aacbe7caeec8;hp=9d01522a3bdeae1c9521182a66154dd55a063870;hb=58daaca96dc8b23e345342e844c58b1972e5fedf;hpb=30cfd915ede8a2b24b693525ff835b2f03220cc9 diff --git a/include/wimlib/wim.h b/include/wimlib/wim.h index 9d01522a..03e0184c 100644 --- a/include/wimlib/wim.h +++ b/include/wimlib/wim.h @@ -47,12 +47,21 @@ struct WIMStruct { /* Have any images been deleted? */ u8 deletion_occurred : 1; - u8 all_images_verified : 1; + /* Do we know that all the stream reference counts in the WIM are + * correct? If so, this is set to 1 and deletions are safe; otherwise + * this is set to 0 and deletions are not safe until reference counts + * are recalculated. (This is due to a bug in M$'s software that + * generates WIMs with invalid reference counts.) */ + u8 refcnts_ok : 1; + u8 wim_locked : 1; + + /* One of WIMLIB_COMPRESSION_TYPE_*, cached from the header flags. */ + u8 compression_type : 2; }; -extern int -wim_run_full_verifications(WIMStruct *w); +extern void +wim_recalculate_refcnts(WIMStruct *wim); extern int read_header(const tchar *filename, int in_fd, struct wim_header *hdr); @@ -63,6 +72,11 @@ write_header(const struct wim_header *hdr, int out_fd); extern int init_header(struct wim_header *hdr, int ctype); +extern int +write_header_flags(u32 hdr_flags, int out_fd); + +extern int +write_header_part_data(u16 part_number, u16 total_parts, int out_fd); extern int rename_wim_path(WIMStruct *wim, const tchar *from, const tchar *to);