]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.h
Fix sequential extraction, and include progress info
[wimlib] / src / lookup_table.h
index c870a114cd28cb47826e797e1b84d7368e5d6263..4458cc7ef1a146c1c59d9e100f710a84a5288ccb 100644 (file)
@@ -185,6 +185,7 @@ struct lookup_table_entry {
                struct resource_entry output_resource_entry;
 
                struct list_head msg_list;
+               struct list_head dentry_list;
        };
 
        union {
@@ -192,15 +193,15 @@ struct lookup_table_entry {
                 * extraction mode.   In these mode, all identical files are linked
                 * together, and @extracted_file will be set to the filename of the
                 * first extracted file containing this stream.  */
-               char *extracted_file;
+               struct {
+                       char *extracted_file;
+                       bool extracted;
+               };
 
                /* List of lookup table entries that correspond to streams that have
                 * been extracted to the staging directory when modifying a read-write
                 * mounted WIM. */
                struct list_head staging_list;
-
-               /* Temporary field for creating a singly linked list. */
-               struct lookup_table_entry *next_lte_in_swm;
        };
 };
 
@@ -288,19 +289,8 @@ extern void free_lookup_table_entry(struct lookup_table_entry *lte);
 extern int dentry_resolve_ltes(struct dentry *dentry, void *__table);
 extern int dentry_unresolve_ltes(struct dentry *dentry, void *ignore);
 
-/* Writes the lookup table to the output file. */
-static inline int write_lookup_table(struct lookup_table *table, FILE *out)
-{
-       return for_lookup_table_entry(table, write_lookup_table_entry, out);
-}
-
-/* Unlinks and frees an entry from a lookup table. */
-static inline void lookup_table_remove(struct lookup_table *table,
-                                      struct lookup_table_entry *lte)
-{
-       lookup_table_unlink(table, lte);
-       free_lookup_table_entry(lte);
-}
+int write_lookup_table(struct lookup_table *table, FILE *out,
+                      struct resource_entry *out_res_entry);
 
 static inline struct resource_entry* wim_metadata_resource_entry(WIMStruct *w)
 {