X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fapply.h;h=6c595d513b84bbb48f29831f0fcddf0e3b6dc8f5;hp=72c21b5dbc06878edac7084e8340f8b860203e81;hb=b5b9681794d1f5f13350e3567f6f6e74f5c779cf;hpb=cc7b6ee47d4037ae8fa11b4c2d5154091d543704 diff --git a/include/wimlib/apply.h b/include/wimlib/apply.h index 72c21b5d..6c595d51 100644 --- a/include/wimlib/apply.h +++ b/include/wimlib/apply.h @@ -2,6 +2,7 @@ #define _WIMLIB_APPLY_H #include "wimlib/list.h" +#include "wimlib/progress.h" #include "wimlib/types.h" #include "wimlib.h" @@ -46,7 +47,8 @@ struct apply_ctx { int extract_flags; /* User-provided progress function, or NULL if not specified. */ - wimlib_progress_func_t progress_func; + wimlib_progress_func_t progfunc; + void *progctx; /* Progress data buffer, with progress.extract initialized. */ union wimlib_progress_info progress; @@ -66,6 +68,12 @@ struct apply_ctx { struct wim_lookup_table_entry *cur_stream; }; +static inline int +extract_progress(struct apply_ctx *ctx, enum wimlib_progress_msg msg) +{ + return call_progress(ctx->progfunc, msg, &ctx->progress, ctx->progctx); +} + /* Returns any of the aliases of an inode that are being extracted. */ #define inode_first_extraction_dentry(inode) \ list_first_entry(&(inode)->i_extraction_aliases, \