]> wimlib.net Git - wimlib/blobdiff - include/wimlib/wim.h
w -> wim
[wimlib] / include / wimlib / wim.h
index 946eee1f163e7ea20c660c11244119491ce7c798..1ef55ddd6b0721a26acd8319101c679cbd7dbfea 100644 (file)
@@ -47,16 +47,24 @@ 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,
-           int split_ok);
+read_header(const tchar *filename, int in_fd, struct wim_header *hdr);
 
 extern int
 write_header(const struct wim_header *hdr, int out_fd);
@@ -64,23 +72,34 @@ 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);
 
 extern int
-select_wim_image(WIMStruct *w, int image);
+select_wim_image(WIMStruct *wim, int image);
+
+extern int
+for_image(WIMStruct *wim, int image, int (*visitor)(WIMStruct *));
+
+extern int
+wim_checksum_unhashed_streams(WIMStruct *wim);
 
 extern int
-for_image(WIMStruct *w, int image, int (*visitor)(WIMStruct *));
+reopen_wim(WIMStruct *wim);
 
 extern int
-wim_checksum_unhashed_streams(WIMStruct *w);
+close_wim(WIMStruct *wim);
 
 extern int
-reopen_wim(WIMStruct *w);
+can_modify_wim(WIMStruct *wim);
 
 extern int
-close_wim(WIMStruct *w);
+can_delete_from_wim(WIMStruct *wim);
 
 #endif /* _WIMLIB_WIM_H */