X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fdentry.h;h=58adb5e681a9022b599be911d90219097d96f4a9;hp=9ff234d5b41d66c187bff87651a959b473fd08ed;hb=143db75c035e6ecaca451ce70a4ed58a01102b43;hpb=594502d26951aa89e374599de862486c1e7a6878 diff --git a/src/dentry.h b/src/dentry.h index 9ff234d5..58adb5e6 100644 --- a/src/dentry.h +++ b/src/dentry.h @@ -78,12 +78,16 @@ struct wim_ads_entry { * terminating null character. */ u16 stream_name_nbytes; - /* Stream name (UTF-16LE) */ - utf16lechar *stream_name; - /* Number to identify an alternate data stream even after it's possibly * been moved or renamed. */ u32 stream_id; + + /* Stream name (UTF-16LE) */ + utf16lechar *stream_name; + + /* Unused field. We read it into memory so we can write it out + * unchanged. */ + u64 unused; }; @@ -228,16 +232,25 @@ struct wim_inode { /* %true iff verify_inode() has run on this inode. */ u8 i_verified : 1; + u8 i_visited : 1; + /* Used only in NTFS-mode extraction */ u8 i_dos_name_extracted : 1; + /* Set to 0 if reparse point fixups have been done. Otherwise set to 1. + * + * Note: this actually may reflect the SYMBOLIC_LINK_RELATIVE flag. */ u16 i_not_rpfixed; /* Number of alternate data streams associated with this inode */ u16 i_num_ads; - u16 i_rp_unknown_2; + /* Unused/unknown fields that we just read into memory so we can + * re-write them unchanged. */ + u64 i_unused_1; + u64 i_unused_2; u32 i_rp_unknown_1; + u16 i_rp_unknown_2; /* A hash of the file's contents, or a pointer to the lookup table entry * for this dentry if the lookup table entries have been resolved. @@ -432,6 +445,10 @@ inode_add_ads_with_data(struct wim_inode *inode, const tchar *name, const void *value, size_t size, struct wim_lookup_table *lookup_table); +extern int +inode_set_unnamed_stream(struct wim_inode *inode, const void *data, size_t len, + struct wim_lookup_table *lookup_table); + extern void inode_remove_ads(struct wim_inode *inode, u16 idx, struct wim_lookup_table *lookup_table); @@ -444,7 +461,7 @@ inode_remove_ads(struct wim_inode *inode, u16 idx, #define WIMLIB_UNIX_DATA_TAG_UTF16LE_NBYTES (sizeof(WIMLIB_UNIX_DATA_TAG_UTF16LE) - 1) /* Format for special alternate data stream entries to store UNIX data for files - * and directories (see: WIMLIB_ADD_IMAGE_FLAG_UNIX_DATA) */ + * and directories (see: WIMLIB_ADD_FLAG_UNIX_DATA) */ struct wimlib_unix_data { u16 version; /* Must be 0 */ u16 uid;