X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fcapture.h;h=d0c7a3245dc2d56cf68dd77846184dddff5c2c0c;hp=995a60f3fb4906ac95339075f4c4bd713fe92c80;hb=5ede6282b6f28fcd71d6eb556dae69e83d925e11;hpb=864db0e0929d60b33b8b0df35ccb68d43e7f8684 diff --git a/include/wimlib/capture.h b/include/wimlib/capture.h index 995a60f3..d0c7a324 100644 --- a/include/wimlib/capture.h +++ b/include/wimlib/capture.h @@ -15,9 +15,7 @@ struct wim_inode; struct capture_config { struct string_set exclusion_pats; struct string_set exclusion_exception_pats; - tchar *prefix; - size_t prefix_num_tchars; - tchar *buf; + void *buf; }; /* Common parameters to implementations of building an in-memory dentry tree @@ -31,11 +29,11 @@ struct add_image_params { struct list_head *unhashed_streams; /* Hash table of inodes that have been captured for this tree so far. */ - struct wim_inode_table inode_table; + struct wim_inode_table *inode_table; /* The set of security descriptors that have been captured for this * image so far. */ - struct wim_sd_set sd_set; + struct wim_sd_set *sd_set; /* Pointer to the capture configuration. */ struct capture_config *config; @@ -47,14 +45,17 @@ struct add_image_params { * libntfs-3g capture. */ void *extra_arg; - u64 capture_root_ino; - u64 capture_root_dev; /* If non-NULL, the user-supplied progress function. */ wimlib_progress_func_t progress_func; /* Progress data. */ union wimlib_progress_info progress; + + /* Can be used by the capture implementation. */ + u64 capture_root_ino; + u64 capture_root_dev; + size_t capture_root_nchars; }; @@ -65,17 +66,25 @@ do_capture_progress(struct add_image_params *params, int status, const struct wim_inode *inode); extern int -do_read_capture_config_file(const tchar *config_file, tchar *buf, size_t buflen, - struct capture_config *config); +mangle_pat(tchar *pat, const tchar *path, unsigned long line_no); + +extern int +do_read_capture_config_file(const tchar *config_file, const void *buf, + size_t bufsize, struct capture_config *config); extern void destroy_capture_config(struct capture_config *config); extern bool -exclude_path(const tchar *path, size_t path_len, - const struct capture_config *config, - bool exclude_prefix); +match_pattern_list(const tchar *path, size_t path_nchars, + const struct string_set *list); + +extern bool +exclude_path(const tchar *path, size_t path_nchars, + const struct capture_config *config); +typedef int (*capture_tree_t)(struct wim_dentry **, const tchar *, + struct add_image_params *); #ifdef WITH_NTFS_3G /* ntfs-3g_capture.c */ @@ -91,12 +100,14 @@ extern int win32_build_dentry_tree(struct wim_dentry **root_ret, const tchar *root_disk_path, struct add_image_params *params); +#define platform_default_capture_tree win32_build_dentry_tree #else /* unix_capture.c */ extern int unix_build_dentry_tree(struct wim_dentry **root_ret, const tchar *root_disk_path, struct add_image_params *params); +#define platform_default_capture_tree unix_build_dentry_tree #endif #define WIMLIB_ADD_FLAG_ROOT 0x80000000