#ifndef _WIMLIB_INODE_TABLE_H #define _WIMLIB_INODE_TABLE_H #include "wimlib/list.h" #include "wimlib/types.h" struct wim_dentry; /* Hash table to find inodes for hard link detection, given an inode number (in * the case of reading a WIM image), or both an inode number and a device number * (in the case of adding files to a WIM image). Also contains an extra list to * hold inodes for which no additional hard link detection is desired. In both * cases the inodes are linked by i_hlist_node. */ struct wim_inode_table { struct hlist_head *array; size_t capacity; struct hlist_head extra_inodes; }; extern int init_inode_table(struct wim_inode_table *table, size_t capacity); extern int inode_table_new_dentry(struct wim_inode_table *table, const tchar *name, u64 ino, u64 devno, bool noshare, struct wim_dentry **dentry_ret); extern void inode_table_prepare_inode_list(struct wim_inode_table *table, struct hlist_head *head); extern void destroy_inode_table(struct wim_inode_table *table); #endif /* _WIMLIB_INODE_TABLE_H */