*/
/*
- * Copyright (C) 2012, 2013 Biggers
+ * Copyright (C) 2012, 2013 Eric Biggers
*
* This file is part of wimlib, a library for working with WIM files.
*
struct hlist_head extra_inodes;
};
-static inline void destroy_inode_table(struct wim_inode_table *table)
-{
- FREE(table->array);
-}
-
-static int init_inode_table(struct wim_inode_table *table, size_t capacity)
+static int
+init_inode_table(struct wim_inode_table *table, size_t capacity)
{
table->array = CALLOC(capacity, sizeof(table->array[0]));
if (!table->array) {
return 0;
}
-static inline size_t inode_link_count(const struct wim_inode *inode)
+static inline void
+destroy_inode_table(struct wim_inode_table *table)
+{
+ FREE(table->array);
+}
+
+static inline size_t
+inode_link_count(const struct wim_inode *inode)
{
const struct list_head *cur;
size_t size = 0;
/* Insert a dentry into the inode table based on the inode number of the
* attached inode (which came from the hard link group ID field of the on-disk
* WIM dentry) */
-static int inode_table_insert(struct wim_dentry *dentry, void *__table)
+static int
+inode_table_insert(struct wim_dentry *dentry, void *_table)
{
- struct wim_inode_table *table = __table;
+ struct wim_inode_table *table = _table;
struct wim_inode *d_inode = dentry->d_inode;
if (d_inode->i_ino == 0) {
return 0;
}
-static void print_inode_dentries(const struct wim_inode *inode)
+#if defined(ENABLE_ERROR_MESSAGES) || defined(ENABLE_DEBUG)
+static void
+print_inode_dentries(const struct wim_inode *inode)
{
struct wim_dentry *dentry;
inode_for_each_dentry(dentry, inode)
- printf("`%s'\n", dentry->full_path_utf8);
+ tprintf(T("`%"TS"'\n"), dentry->full_path);
}
+#endif
-static void inconsistent_inode(const struct wim_inode *inode)
+static void
+inconsistent_inode(const struct wim_inode *inode)
{
+#ifdef ENABLE_ERROR_MESSAGES
ERROR("An inconsistent hard link group that cannot be corrected has "
"been detected");
ERROR("The dentries are located at the following paths:");
-#ifdef ENABLE_ERROR_MESSAGES
print_inode_dentries(inode);
#endif
}
-static bool ref_inodes_consistent(const struct wim_inode * restrict ref_inode_1,
- const struct wim_inode * restrict ref_inode_2)
+static bool
+ref_inodes_consistent(const struct wim_inode * restrict ref_inode_1,
+ const struct wim_inode * restrict ref_inode_2)
{
wimlib_assert(ref_inode_1 != ref_inode_2);
return true;
}
-static bool inodes_consistent(const struct wim_inode * restrict ref_inode,
- const struct wim_inode * restrict inode)
+static bool
+inodes_consistent(const struct wim_inode * restrict ref_inode,
+ const struct wim_inode * restrict inode)
{
wimlib_assert(ref_inode != inode);
}
/* Fix up a "true" inode and check for inconsistencies */
-static int fix_true_inode(struct wim_inode *inode, struct hlist_head *inode_list)
+static int
+fix_true_inode(struct wim_inode *inode, struct hlist_head *inode_list)
{
struct wim_dentry *dentry;
struct wim_dentry *ref_dentry = NULL;
* wim_inode's. There will be just one `struct wim_inode' for each hard link
* group remaining.
*/
-static int fix_nominal_inode(struct wim_inode *inode,
- struct hlist_head *inode_list)
+static int
+fix_nominal_inode(struct wim_inode *inode, struct hlist_head *inode_list)
{
struct wim_dentry *dentry;
struct hlist_node *cur, *tmp;
if (num_true_inodes != 1) {
inode = container_of(true_inodes.first, struct wim_inode, i_hlist);
- printf("Split nominal inode 0x%"PRIx64" into %zu "
- "inodes:\n",
- inode->i_ino, num_true_inodes);
- puts("------------------------------------------------------------------------------");
+ tprintf(T("Split nominal inode 0x%"PRIx64" into %zu "
+ "inodes:\n"), inode->i_ino, num_true_inodes);
+ tputs(T("----------------------------------------------------"
+ "--------------------------"));
size_t i = 1;
hlist_for_each_entry(inode, cur, &true_inodes, i_hlist) {
- printf("[Split inode %zu]\n", i++);
+ tprintf(T("[Split inode %zu]\n"), i++);
print_inode_dentries(inode);
- putchar('\n');
+ tputchar(T('\n'));
}
- puts("------------------------------------------------------------------------------");
+ tputs(T("----------------------------------------------------"
+ "--------------------------"));
}
#endif
return 0;
}
-static int fix_inodes(struct wim_inode_table *table,
- struct hlist_head *inode_list)
+static int
+fix_inodes(struct wim_inode_table *table, struct hlist_head *inode_list)
{
struct wim_inode *inode;
struct hlist_node *cur, *tmp;
* failure. On success, the list of "true" inodes, linked by the i_hlist field,
* is returned in the hlist @inode_list.
*/
-int dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_list)
+int
+dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_list)
{
struct wim_inode_table inode_tab;
int ret;
/* Assign inode numbers to a list of inodes and return the next available
* number. */
-u64 assign_inode_numbers(struct hlist_head *inode_list)
+u64
+assign_inode_numbers(struct hlist_head *inode_list)
{
DEBUG("Assigning inode numbers");
struct wim_inode *inode;