#include "util.h"
#include "list.h"
+#include "wimlib.h"
+
#ifdef WITH_FUSE
#include <pthread.h>
#endif
struct dentry;
struct inode;
-#include "wimlib.h"
-
#define WIM_MAGIC_LEN 8
#define WIM_GID_LEN 16
#define WIM_UNUSED_LEN 60
* the case, the memory for the filesystem is not freed when switching
* to a different WIM image. */
u8 modified : 1;
-
u8 has_been_mounted_rw : 1;
};
#define WIMLIB_RESOURCE_FLAG_RECOMPRESS 0x4
/* The opaque structure exposed to the wimlib API. */
-typedef struct WIMStruct {
+struct WIMStruct {
/* A pointer to the file indicated by @filename, opened for reading. */
FILE *fp;
/* %true iff any images have been deleted from this WIM. */
bool deletion_occurred;
-} WIMStruct;
+};
/* Inline utility functions for WIMStructs. */
wimlib_progress_func_t progress_func;
};
-extern int wim_apply_dentry_ntfs(struct dentry *dentry, void *arg);
-extern int wim_apply_dentry_timestamps(struct dentry *dentry, void *arg);
+extern int apply_dentry_ntfs(struct dentry *dentry, void *arg);
+extern int apply_dentry_timestamps_ntfs(struct dentry *dentry, void *arg);
/* ntfs-capture.c */
extern int build_dentry_tree_ntfs(struct dentry **root_p,
extern int select_wim_image(WIMStruct *w, int image);
extern int wim_hdr_flags_compression_type(int wim_hdr_flags);
extern int for_image(WIMStruct *w, int image, int (*visitor)(WIMStruct *));
-extern int open_wim_readable(WIMStruct *w, const char *path);
-extern int open_wim_writable(WIMStruct *w, const char *path,
- bool trunc, bool readable);
/* Internal use only */
#define WIMLIB_WRITE_FLAG_NO_LOOKUP_TABLE 0x80000000
/* write.c */
extern int begin_write(WIMStruct *w, const char *path, int write_flags);
+extern void close_wim_writable(WIMStruct *w);
extern int finish_write(WIMStruct *w, int image, int write_flags,
wimlib_progress_func_t progress_func);
+#if defined(HAVE_SYS_FILE_H) && defined(HAVE_FLOCK)
+extern int lock_wim(FILE *fp, const char *path);
+#else
+static inline int lock_wim(FILE *fp, const char *path)
+{
+ return 0;
+}
+#endif
+
#endif /* _WIMLIB_INTERNAL_H */