X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fwimlib.h;h=8c133a261cca606e45c8b5e84119cdb60830759a;hb=c8c6ce6f5e94086eb3b210661c1cfb08dacff67d;hp=dddfd2ad6a02674caeeec144e33904acf64991f2;hpb=d0e7f039e4ab206b9fd973c983e3fb841fcd2bf2;p=wimlib diff --git a/src/wimlib.h b/src/wimlib.h index dddfd2ad..8c133a26 100644 --- a/src/wimlib.h +++ b/src/wimlib.h @@ -108,10 +108,9 @@ * that this is for convenience only, and some errors can occur without a * message being printed. * - * wimlib is thread-safe as long as different ::WIMStruct's are used, with the - * following exceptions: wimlib_set_print_errors() and - * wimlib_set_memory_allocator() apply globally, and wimlib_mount() can only be - * used by one ::WIMStruct at a time. + * wimlib is thread-safe as long as different ::WIMStruct's are used, except for + * the fact that wimlib_set_print_errors() and wimlib_set_memory_allocator() + * both apply globally. * * To open an existing WIM, use wimlib_open_wim(). * @@ -346,6 +345,7 @@ enum wimlib_error_code { WIMLIB_ERR_READLINK, WIMLIB_ERR_READ, WIMLIB_ERR_RENAME, + WIMLIB_ERR_RESOURCE_ORDER, WIMLIB_ERR_SPECIAL_FILE, WIMLIB_ERR_SPLIT_INVALID, WIMLIB_ERR_SPLIT_UNSUPPORTED, @@ -892,7 +892,10 @@ extern bool wimlib_image_name_in_use(const WIMStruct *wim, const char *name); * An error occurred when trying to write data to the new WIM at @a output_path. * * Note that this function merely copies the resources, so it will not check to - * see if the resources, including the metadata resource, are valid or not. + * see if the resources, including the metadata resources, are valid or not. + * + * Also, after this function is called, the only function that may be called on + * the ::WIMStruct's in the @a swms array is wimlib_free(). */ extern int wimlib_join(const char **swms, unsigned num_swms, const char *output_path, int flags); @@ -905,11 +908,13 @@ extern int wimlib_join(const char **swms, unsigned num_swms, * If the mount is read-write, modifications to the WIM are staged in a staging * directory. * - * wimlib_mount() currently cannot be used with multiple ::WIMStruct's without - * intervening wimlib_unmount()s. + * wimlib_mount() may be called from multiple threads without intervening calls + * to wimlib_unmount(), provided that different ::WIMStruct's are used. (This + * was not the case for versions of this library 1.0.3 and earlier.) * * wimlib_mount() cannot be used on an image that was exported with - * wimlib_export() while the dentry trees for both images are still in memory. + * wimlib_export_image() while the dentry trees for both images are still in + * memory. * * @param wim * Pointer to the ::WIMStruct for the WIM file to be mounted. @@ -949,7 +954,7 @@ extern int wimlib_join(const char **swms, unsigned num_swms, * @a image does not specify an existing, single image in @a wim. * @retval ::WIMLIB_ERR_INVALID_PARAM * @a image is shared among multiple ::WIMStruct's as a result of a call to - * wimlib_export(). + * wimlib_export_image(). * @retval ::WIMLIB_ERR_INVALID_RESOURCE_SIZE * The metadata resource for @a image in @a wim is invalid. * @retval ::WIMLIB_ERR_INVALID_SECURITY_DATA @@ -993,7 +998,7 @@ extern int wimlib_mount(WIMStruct *wim, int image, const char *dir, int flags, * If ::WIMLIB_OPEN_FLAG_SHOW_PROGRESS is given, progress information will * be shown if the integrity of the WIM is checked. * If ::WIMLIB_OPEN_FLAG_SPLIT_OK is given, no error will be issued if the - * WIM is part of a split WIM; otherwise WIMLIB_ERR_SPLIT_UNSUPPORTED is + * WIM is part of a split WIM; otherwise ::WIMLIB_ERR_SPLIT_UNSUPPORTED is * returned. (This flag may be removed in the future, in which case no * error will be issued when opening a split WIM.) * @@ -1113,6 +1118,11 @@ extern int wimlib_overwrite(WIMStruct *wim, int flags); * from the WIM file associated with @a wim could not be read to compute * the SHA1 message digests, or the old integrity table (if it existed) * could not be read. + * @retval ::WIMLIB_ERR_RESOURCE_ORDER + * Stream resources appeared in the WIM after the XML data or integrity + * table, so we could not safely overwrite the XML data and integrity + * table. Note: this error should never be received from WIMs that were + * written by this library. * @retval ::WIMLIB_ERR_WRITE * Failed to write the WIM header, the XML data, or the integrity table to * the WIM file associated with @a wim.