]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.c
print_lookup_table(): Print metadata entries
[wimlib] / src / lookup_table.c
index 95708866c9197614588f23ecc0caa26ceac71d02..d225d627675c0901025f7806199e2cd99f0d89c8 100644 (file)
@@ -355,16 +355,18 @@ struct wim_lookup_table_entry_disk {
        struct resource_entry_disk resource_entry;
 
        /* Which part of the split WIM this stream is in; indexed from 1. */
-       u16 part_number;
+       le16 part_number;
 
        /* Reference count of this stream over all WIM images. */
-       u32 refcnt;
+       le32 refcnt;
 
        /* SHA1 message digest of the uncompressed data of this stream, or
         * optionally all zeroes if this stream is of zero length. */
        u8 hash[SHA1_HASH_SIZE];
 } _packed_attribute;
 
+#define WIM_LOOKUP_TABLE_ENTRY_DISK_SIZE 50
+
 /*
  * Reads the lookup table from a WIM file.
  *
@@ -382,6 +384,10 @@ read_lookup_table(WIMStruct *w)
        struct wim_lookup_table_entry_disk
                        table_buf[BUFFER_SIZE / sizeof(struct wim_lookup_table_entry_disk)]
                                _aligned_attribute(8);
+
+       BUILD_BUG_ON(sizeof(struct wim_lookup_table_entry_disk) !=
+                    WIM_LOOKUP_TABLE_ENTRY_DISK_SIZE);
+
        off_t offset;
        size_t buf_entries_remaining;
        const struct wim_lookup_table_entry_disk *disk_entry;
@@ -752,9 +758,11 @@ do_print_lookup_table_entry(struct wim_lookup_table_entry *lte, void *fp)
  * Prints the lookup table of a WIM file.
  */
 WIMLIBAPI void
-wimlib_print_lookup_table(WIMStruct *w)
+wimlib_print_lookup_table(WIMStruct *wim)
 {
-       for_lookup_table_entry(w->lookup_table,
+       for (int i = 0; i < wim->hdr.image_count; i++)
+               print_lookup_table_entry(wim->image_metadata[i]->metadata_lte, stdout);
+       for_lookup_table_entry(wim->lookup_table,
                               do_print_lookup_table_entry,
                               stdout);
 }