* This file is part of wimlib, a library for working with WIM files.
*
* wimlib is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
+ * terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* wimlib is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
- * You should have received a copy of the GNU Lesser General Public License
+ * You should have received a copy of the GNU General Public License
* along with wimlib; if not, see http://www.gnu.org/licenses/.
*/
* that wimlib writes, currently), it will be 8 bytes. */
u32 total_length;
- /* The number of security descriptors in the array @descriptors, below. */
- u32 num_entries;
+ /* The number of security descriptors in the array @descriptors, below.
+ * It is really an unsigned int, but it must fit into an int because the
+ * security ID's are signed. (Not like you would ever have more than a
+ * few hundred security descriptors anyway). */
+ int32_t num_entries;
/* Array of sizes of the descriptors in the array @descriptors. */
u64 *sizes;
int add_flags;
int write_flags;
bool write_metadata;
- ntfs_volume *ntfs_vol;
};
+#ifdef WITH_NTFS_3G
+ ntfs_volume *ntfs_vol;
+#endif
/* The currently selected image, indexed starting at 1. If not 0,
* subtract 1 from this to get the index of the current image in the
/* hardlink.c */
-struct link_group_table *new_link_group_table(u64 capacity);
+struct link_group_table *new_link_group_table(size_t capacity);
int link_group_table_insert(struct dentry *dentry,
void *__table);
void free_link_group_table(struct link_group_table *table);
-u64 assign_link_groups(struct link_group_table *table);
-int link_groups_free_duplicate_data(struct link_group_table *table);
+u64 assign_link_group_ids(struct link_group_table *table);
+int fix_link_groups(struct link_group_table *table);
/* header.c */
int show_progress);
extern int check_wim_integrity(WIMStruct *w, int show_progress, int *status);
+/* join.c */
+
+extern int new_joined_lookup_table(WIMStruct *w,
+ WIMStruct **additional_swms,
+ unsigned num_additional_swms,
+ struct lookup_table **table_ret);
+
+extern int verify_swm_set(WIMStruct *w,
+ WIMStruct **additional_swms,
+ unsigned num_additional_swms);
/* modify.c */
extern void destroy_image_metadata(struct image_metadata *imd,
struct lookup_table *lt);
extern int extract_full_wim_resource_to_fd(const struct lookup_table_entry *lte,
int fd);
-extern int read_metadata_resource(FILE *fp, int wim_ctype,
+extern int read_metadata_resource(WIMStruct *w,
struct image_metadata *image_metadata);