]> wimlib.net Git - wimlib/blobdiff - include/wimlib/inode.h
win32_apply.c: Match PrepopulateList patterns against all inode aliases
[wimlib] / include / wimlib / inode.h
index 4d39c1ba9904fd0f034392e614a7c662d2be07c1..733d3847f8082fc12e0a204c443ecc46f8d50247 100644 (file)
@@ -102,6 +102,9 @@ struct wim_inode {
         * has no ADS entries  */
        u8 i_canonical_streams : 1;
 
+       /* Cached value  */
+       u8 i_can_externally_back : 1;
+
        /* Pointer to a malloc()ed array of i_num_ads alternate data stream
         * entries for this inode.  */
        struct wim_ads_entry *i_ads_entries;
@@ -125,9 +128,10 @@ struct wim_inode {
 
        /* Corresponds to 'security_id' in `struct wim_dentry_on_disk':  The
         * index of this inode's security descriptor in the WIM image's table of
-        * security descriptors, or -1.  Note: in verify_inode(), called
-        * whenever a WIM image is loaded, out-of-bounds indices are set to -1,
-        * so the extraction code does not need to do bounds checks.  */
+        * security descriptors, or -1.  Note: when a WIM image is loaded,
+        * wimlib sets out-of-bounds indices and values less than -1 in this
+        * field to -1.  So the extraction code need not do an upper bound check
+        * after checking for -1 (or equivalently < 0).  */
        int32_t i_security_id;
 
        /* Identity of a reparse point.  See
@@ -176,6 +180,12 @@ struct wim_inode {
                #endif
                };
 
+               /* Used during WIM writing with
+                * WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES:  the number
+                * of data streams this inode has that have not yet been fully
+                * read.  */
+               u32 num_remaining_streams;
+
 #ifdef WITH_FUSE
                struct {
                        /* Used only during image mount:  Table of file
@@ -349,6 +359,12 @@ extern void
 inode_remove_ads(struct wim_inode *inode, struct wim_ads_entry *entry,
                 struct wim_lookup_table *lookup_table);
 
+/*
+ * Does the specified alternate data stream entry correspond to a named stream?
+ *
+ * See inode_needs_dummy_stream() for explanation of why an alternate data
+ * stream entry might, in fact, not be named...
+ */
 static inline bool
 ads_entry_is_named_stream(const struct wim_ads_entry *entry)
 {
@@ -516,8 +532,8 @@ extern int
 read_ads_entries(const u8 * restrict p, struct wim_inode * restrict inode,
                 size_t *nbytes_remaining_p);
 
-extern int
-verify_inode(struct wim_inode *inode, const struct wim_security_data *sd);
+extern void
+check_inode(struct wim_inode *inode, const struct wim_security_data *sd);
 
 extern void
 inode_ref_streams(struct wim_inode *inode);