memset(entry, 0, sizeof(entry));
}
+static inline bool ads_entry_has_name(const struct ads_entry *entry,
+ const char *name, size_t name_len)
+{
+ if (entry->stream_name_utf8_len != name_len)
+ return false;
+ return memcmp(entry->stream_name_utf8, name, name_len) == 0;
+}
+
/* In-memory structure for a directory entry. There is a directory tree for
* each image in the WIM. */
return dentry->hash;
}
-static inline size_t dentry_link_group_size(struct dentry *dentry)
+static inline size_t dentry_link_group_size(const struct dentry *dentry)
{
size_t size = 0;
struct list_head *list;
list_for_each(list, &dentry->link_group_list)
size++;
+ if (size == 0)
+ size = 1;
return size;
}
extern void init_dentry(struct dentry *dentry, const char *name);
extern struct dentry *new_dentry(const char *name);
+extern void dentry_free_ads_entries(struct dentry *dentry);
extern void free_dentry(struct dentry *dentry);
+extern struct dentry *clone_dentry(struct dentry *old);
extern void free_dentry_tree(struct dentry *root,
struct lookup_table *lookup_table,
bool lt_decrement_refcnt);
extern u8 *write_dentry_tree(const struct dentry *tree, u8 *p);
-extern int dentry_set_symlink_buf(struct dentry *dentry,
- const u8 symlink_buf_hash[]);
/* Inline utility functions for WIMDentries */