]> wimlib.net Git - wimlib/blobdiff - include/wimlib/inode.h
Always use abbreviated integer types in library code
[wimlib] / include / wimlib / inode.h
index 38f74a9f5a296fc40193e26fc87ba79f1a6535cd..8455e667b47044b2bc2d52ea3962d9b93d36a5d7 100644 (file)
@@ -121,19 +121,10 @@ struct wim_inode {
         * i_nlink dentries in this list.  */
        struct list_head i_dentry;
 
-       /* Field to place this inode into a list. */
-       union {
-               /* Hash list node- used in inode_fixup.c when the inodes are
-                * placed into a hash table keyed by inode number and optionally
-                * device number, in order to detect dentries that are aliases
-                * for the same inode. */
-               struct hlist_node i_hlist;
-
-               /* Normal list node- used to connect all the inodes of a WIM
-                * image into a single linked list referenced from the `struct
-                * wim_image_metadata' for that image. */
-               struct list_head i_list;
-       };
+       /* Field to place this inode into a list.  While reading a WIM image or
+        * adding files to a WIM image this is owned by the inode table;
+        * otherwise this links the inodes for the WIM image.  */
+       struct hlist_node i_hlist;
 
        /* Number of dentries that are aliases for this inode.  */
        u32 i_nlink;
@@ -170,7 +161,7 @@ struct wim_inode {
         * 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;
+       s32 i_security_id;
 
        /* Identity of a reparse point.  See
         * http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503(v=vs.85).aspx
@@ -346,6 +337,12 @@ inode_get_stream(const struct wim_inode *inode, int stream_type,
 extern struct wim_inode_stream *
 inode_get_unnamed_stream(const struct wim_inode *inode, int stream_type);
 
+static inline struct wim_inode_stream *
+inode_get_unnamed_data_stream(const struct wim_inode *inode)
+{
+       return inode_get_unnamed_stream(inode, STREAM_TYPE_DATA);
+}
+
 extern struct wim_inode_stream *
 inode_add_stream(struct wim_inode *inode, int stream_type,
                 const utf16lechar *stream_name, struct blob_descriptor *blob);
@@ -404,9 +401,6 @@ extern int
 inode_resolve_streams(struct wim_inode *inode,
                      struct blob_table *table, bool force);
 
-extern void
-inode_unresolve_streams(struct wim_inode *inode);
-
 extern int
 blob_not_found_error(const struct wim_inode *inode, const u8 *hash);
 
@@ -434,6 +428,6 @@ inode_unref_blobs(struct wim_inode *inode, struct blob_table *blob_table);
 
 /* inode_fixup.c  */
 extern int
-dentry_tree_fix_inodes(struct wim_dentry *root, struct list_head *inode_list);
+dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_list);
 
 #endif /* _WIMLIB_INODE_H  */