X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Fwim.h;h=860a3236dd543abcc5770fbfb7027f9ac0554ca7;hb=62458ef728064652932d49fbab1116b2f2462fa8;hp=0f77aabc7a00fd572ae25bc8e5dca08969b4b850;hpb=3de1ec66f778edda19865482d685bc6f4e17faf7;p=wimlib diff --git a/include/wimlib/wim.h b/include/wimlib/wim.h index 0f77aabc..860a3236 100644 --- a/include/wimlib/wim.h +++ b/include/wimlib/wim.h @@ -11,7 +11,7 @@ #include "wimlib/list.h" struct wim_image_metadata; -struct wim_info; +struct wim_xml_info; struct blob_table; /* @@ -29,7 +29,7 @@ struct blob_table; * * Note 2: although this is the top-level data structure in wimlib, there do * exist cases in which a WIMStruct is not standalone: - * - streams have been referenced from another WIMStruct + * - blobs have been referenced from another WIMStruct * - an image has been imported into this WIMStruct from another * (as this references the metadata rather than copies it) * @@ -42,10 +42,14 @@ struct WIMStruct { /* Information from the header of the WIM file. * - * This is also maintained for a WIMStruct not backed by a file, but the - * 'reshdr' fields have no meaning. */ + * This is also maintained for a WIMStruct not backed by a file, but in + * that case the 'reshdr' fields are left zeroed. */ struct wim_header hdr; + /* If the library is currently writing this WIMStruct out to a file, + * then this is the header being created for that file. */ + struct wim_header out_hdr; + /* Array of image metadata, one for each image in the WIM (array length * hdr.image_count). Or, this will be NULL if this WIM does not contain * metadata, which implies that this WIMStruct either represents part of @@ -55,7 +59,7 @@ struct WIMStruct { /* Information from the XML data of the WIM file. This information is * also maintained for a WIMStruct not backed by a file. */ - struct wim_info *wim_info; + struct wim_xml_info *xml_info; /* The blob table for this WIMStruct. If this WIMStruct has a backing * file, then this table will index the blobs contained in that file. @@ -154,7 +158,7 @@ struct WIMStruct { /* * Return true if and only if the WIM contains image metadata (actual directory - * trees, not just a collection of streams and their checksums). + * trees, not just a collection of blobs and their checksums). * * See the description of the 'image_metadata' field. Note that we return true * when the image count is 0 because it could be a WIM with 0 images. It's only @@ -182,21 +186,15 @@ static inline bool wim_is_pipable(const WIMStruct *wim) return (wim->hdr.magic == PWM_MAGIC); } -extern int -set_wim_hdr_cflags(int ctype, struct wim_header *hdr); - -extern int -init_wim_header(struct wim_header *hdr, int ctype, u32 chunk_size); +extern bool +wim_has_solid_resources(const WIMStruct *wim); extern int read_wim_header(WIMStruct *wim, struct wim_header *hdr); extern int -write_wim_header(const struct wim_header *hdr, struct filedes *out_fd); - -extern int -write_wim_header_at_offset(const struct wim_header *hdr, struct filedes *out_fd, - off_t offset); +write_wim_header(const struct wim_header *hdr, struct filedes *out_fd, + off_t offset); extern int write_wim_header_flags(u32 hdr_flags, struct filedes *out_fd);