1 #ifndef _WIMLIB_INODE_TABLE_H
2 #define _WIMLIB_INODE_TABLE_H
4 #include "wimlib/list.h"
5 #include "wimlib/types.h"
9 /* Hash table to find inodes for hard link detection, given an inode number (in
10 * the case of reading a WIM image), or both an inode number and a device number
11 * (in the case of adding files to a WIM image). Also contains an extra list to
12 * hold inodes for which no additional hard link detection is desired. In both
13 * cases the inodes are linked by i_hlist. */
14 struct wim_inode_table {
15 struct hlist_head *array;
18 struct hlist_head extra_inodes;
23 init_inode_table(struct wim_inode_table *table, size_t capacity);
26 inode_table_new_dentry(struct wim_inode_table *table, const tchar *name,
27 u64 ino, u64 devno, bool noshare,
28 struct wim_dentry **dentry_ret);
31 inode_table_prepare_inode_list(struct wim_inode_table *table,
32 struct hlist_head *head);
35 destroy_inode_table(struct wim_inode_table *table);
37 #endif /* _WIMLIB_INODE_TABLE_H */