1 #ifndef _WIMLIB_WRITE_H
2 #define _WIMLIB_WRITE_H
5 #include "wimlib/types.h"
7 /* Internal use only */
8 #define WIMLIB_WRITE_FLAG_NO_BLOB_TABLE 0x80000000
9 #define WIMLIB_WRITE_FLAG_CHECKPOINT_AFTER_XML 0x40000000
10 #define WIMLIB_WRITE_FLAG_HEADER_AT_END 0x20000000
11 #define WIMLIB_WRITE_FLAG_FILE_DESCRIPTOR 0x10000000
12 #define WIMLIB_WRITE_FLAG_USE_EXISTING_TOTALBYTES 0x08000000
13 #define WIMLIB_WRITE_FLAG_NO_METADATA 0x04000000
14 #define WIMLIB_WRITE_FLAG_OVERWRITE 0x02000000
16 /* Keep in sync with wimlib.h */
17 #define WIMLIB_WRITE_MASK_PUBLIC ( \
18 WIMLIB_WRITE_FLAG_CHECK_INTEGRITY | \
19 WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY | \
20 WIMLIB_WRITE_FLAG_PIPABLE | \
21 WIMLIB_WRITE_FLAG_NOT_PIPABLE | \
22 WIMLIB_WRITE_FLAG_RECOMPRESS | \
23 WIMLIB_WRITE_FLAG_FSYNC | \
24 WIMLIB_WRITE_FLAG_REBUILD | \
25 WIMLIB_WRITE_FLAG_SOFT_DELETE | \
26 WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG | \
27 WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS | \
28 WIMLIB_WRITE_FLAG_STREAMS_OK | \
29 WIMLIB_WRITE_FLAG_RETAIN_GUID | \
30 WIMLIB_WRITE_FLAG_SOLID | \
31 WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES | \
32 WIMLIB_WRITE_FLAG_NO_SOLID_SORT)
34 #if defined(HAVE_SYS_FILE_H) && defined(HAVE_FLOCK)
36 lock_wim_for_append(WIMStruct *wim);
38 unlock_wim_for_append(WIMStruct *wim);
41 lock_wim_for_append(WIMStruct *wim)
46 unlock_wim_for_append(WIMStruct *wim)
56 write_wim_part(WIMStruct *wim,
57 const void *path_or_fd,
63 struct list_head *blob_list_override,
67 write_wim_resource_from_buffer(const void *buf,
70 struct filedes *out_fd,
73 struct wim_reshdr *out_reshdr,
75 int write_resource_flags);
77 #endif /* _WIMLIB_WRITE_H */