+ /* If this WIMStruct has a backing file, then this is a file descriptor
+ * open to that file with read access. Otherwise, this field is invalid
+ * (!filedes_valid(&in_fd)). */
+ struct filedes in_fd;
+
+ /* If the library is currently writing this WIMStruct out to a file,
+ * then this is a file descriptor open to that file with write access.
+ * Otherwise, this field is invalid (!filedes_valid(&out_fd)). */
+ struct filedes out_fd;
+
+ /*
+ * This is the cached decompressor for this WIM file, or NULL if no
+ * decompressor is cached yet. Normally, all the compressed data in a
+ * WIM file has the same compression type and chunk size, so the same
+ * decompressor can be used for all data --- and that decompressor will
+ * be cached here. However, if we do encounter any data with a
+ * different compression type or chunk size (this is possible in solid
+ * resources), then this cached decompressor will be replaced with a new
+ * one.
+ */
+ struct wimlib_decompressor *decompressor;
+ u8 decompressor_ctype;
+ u32 decompressor_max_block_size;
+
+ /*
+ * 'subwims' is the list of dependent WIMStructs (linked by
+ * 'subwim_node') that have been opened by calls to
+ * wimlib_reference_resource_files(). These WIMStructs must be retained
+ * so that resources from them can be used. They are internal to the
+ * library and are not visible to API users.
+ */
+ struct list_head subwims;
+ struct list_head subwim_node;
+
+ /* Temporary field; use sparingly */
+ void *private;