]> wimlib.net Git - wimlib/blobdiff - include/wimlib/apply.h
Add new files for chunk compression
[wimlib] / include / wimlib / apply.h
index 31cda98f4222234520e18c315874dc79ef5f1023..11a0365135e5c7157159edd73e4ce8473b348eee 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _WIMLIB_APPLY_H
 #define _WIMLIB_APPLY_H
 
+#include "wimlib/file_io.h"
 #include "wimlib/types.h"
 #include "wimlib/list.h"
 #include "wimlib.h"
@@ -83,7 +84,7 @@ struct apply_operations {
        /* OPTIONAL:  Extracted encrypted stream.  In start_extract(), set
         * ctx->supported_features.encrypted_files if supported.  */
        int (*extract_encrypted_stream)
-               (file_spec_t file, struct wim_lookup_table_entry *lte,
+               (const tchar *path, struct wim_lookup_table_entry *lte,
                 struct apply_ctx *ctx);
 
        /* OPTIONAL:  Set file attributes.  Calling code calls this if non-NULL.
@@ -172,6 +173,15 @@ struct apply_operations {
        /* OPTIONAL:  Set to 1 if set_file_attributes() needs to be called a
         * second time towards the end of the extraction.  */
        unsigned requires_final_set_attributes_pass : 1;
+
+       /* OPTIONAL:  Set to 1 if extract_encrypted_stream() must be used to
+        * create encrypted files.  */
+       unsigned extract_encrypted_stream_creates_file : 1;
+
+       /* OPTIONAL:  Set to 1 if a link to a file with corresponding short name
+        * must be created before all links to the same file without
+        * corresponding short names.  */
+       unsigned requires_short_name_reordering : 1;
 };
 
 struct wim_features {
@@ -209,6 +219,10 @@ struct apply_ctx {
        tchar *realtarget;
        size_t realtarget_nchars;
        unsigned long invalid_sequence;
+       unsigned long partial_security_descriptors;
+       unsigned long no_security_descriptors;
+       struct filedes tmpfile_fd;
+       tchar *tmpfile_name;
        u64 num_streams_remaining;
        bool root_dentry_is_special;
        uint64_t next_progress;