#define _WIMLIB_RESOURCE_H
#include "wimlib/callback.h"
-#include "wimlib/file_io.h"
#include "wimlib/list.h"
#include "wimlib/sha1.h"
#include "wimlib/types.h"
+struct filedes;
struct wim_lookup_table_entry;
struct wim_image_metadata;
/* 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. */
/* Compression format used for compressed chunks:
* 0 = None
- * 1 = LZX
- * 2 = XPRESS
+ * 1 = XPRESS
+ * 2 = LZX
* 3 = LZMS
*
* This overrides the compression type specified by the WIM header. */
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);
* @lte:
* Stream that is about to be read.
*
- * @is_partial_res:
- * Set to true if the stream is just one of several being read from a
- * single pack and therefore would be extra expensive to read
- * independently.
- *
* @ctx:
* User-provided context.
*
* (without calling @consume_chunk or @end_stream).
*/
typedef int (*read_stream_list_begin_stream_t)(struct wim_lookup_table_entry *lte,
- bool is_partial_res,
void *ctx);
#define BEGIN_STREAM_STATUS_SKIP_STREAM -1
extract_full_stream_to_fd(struct wim_lookup_table_entry *lte,
struct filedes *fd);
-extern int
-extract_chunk_to_fd(const void *chunk, size_t size, void *_fd_p);
-
/* Miscellaneous stream functions. */
extern int
/* Functions to read/write metadata resources. */
extern int
-read_metadata_resource(WIMStruct *wim,
- struct wim_image_metadata *image_metadata);
+read_metadata_resource(struct wim_image_metadata *imd);
extern int
write_metadata_resource(WIMStruct *wim, int image, int write_resource_flags);