X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fwimlib_internal.h;h=be4c60911648be2daee13604a5b90053698e4a49;hp=b4ce282f37f863b05f4619a05af80fb005645c61;hb=1dde5fb0d809f2f5e032e4d5241d1cb15ff3eb65;hpb=980dec359010f14f558dc4708a689f450befea50 diff --git a/src/wimlib_internal.h b/src/wimlib_internal.h index b4ce282f..be4c6091 100644 --- a/src/wimlib_internal.h +++ b/src/wimlib_internal.h @@ -181,6 +181,7 @@ struct wim_header { * a LZ77-based algorithm. */ #define WIM_HDR_FLAG_COMPRESS_LZX 0x00040000 +typedef struct _ntfs_volume ntfs_volume; /* Structure for security data. Each image in the WIM file has its own security * data. */ @@ -266,6 +267,9 @@ typedef struct WIMStruct { int write_flags; bool write_metadata; }; +#ifdef WITH_NTFS_3G + ntfs_volume *ntfs_vol; +#endif /* The currently selected image, indexed starting at 1. If not 0, * subtract 1 from this to get the index of the current image in the @@ -281,12 +285,13 @@ static inline struct dentry *wim_root_dentry(WIMStruct *w) return w->image_metadata[w->current_image - 1].root_dentry; } -static inline struct dentry **wim_root_dentry_p(WIMStruct *w) +static inline struct wim_security_data * +wim_security_data(WIMStruct *w) { - return &w->image_metadata[w->current_image - 1].root_dentry; + return w->image_metadata[w->current_image - 1].security_data; } - -static inline struct wim_security_data *wim_security_data(WIMStruct *w) +static inline const struct wim_security_data * +wim_const_security_data(const WIMStruct *w) { return w->image_metadata[w->current_image - 1].security_data; } @@ -303,11 +308,28 @@ static inline int resource_is_compressed(const struct resource_entry *entry) return (entry->flags & WIM_RESHDR_FLAG_COMPRESSED); } -static inline struct image_metadata *wim_get_current_image_metadata(WIMStruct *w) +static inline struct image_metadata * +wim_get_current_image_metadata(WIMStruct *w) { return &w->image_metadata[w->current_image - 1]; } +struct pattern_list { + const char **pats; + size_t num_pats; + size_t num_allocated_pats; +}; + +struct capture_config { + struct pattern_list exclusion_list; + struct pattern_list exclusion_exception; + struct pattern_list compression_exclusion_list; + struct pattern_list alignment_list; + char *config_str; + char *prefix; + size_t prefix_len; +}; + /* hardlink.c */ struct link_group_table *new_link_group_table(u64 capacity); @@ -332,6 +354,18 @@ extern int check_wim_integrity(WIMStruct *w, int show_progress, int *status); /* modify.c */ extern void destroy_image_metadata(struct image_metadata *imd, struct lookup_table *lt); +extern bool exclude_path(const char *path, + const struct capture_config *config, + bool exclude_prefix); +extern int do_add_image(WIMStruct *w, const char *dir, const char *name, + const char *config_str, size_t config_len, + int flags, + int (*capture_tree)(struct dentry **, const char *, + struct lookup_table *, + struct wim_security_data *, + const struct capture_config *, + int, void *), + void *extra_arg); /* resource.c */ extern const u8 *get_resource_entry(const u8 *p, struct resource_entry *entry);