diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/fstree.h | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/include/fstree.h b/include/fstree.h index dfb1314..7f85be8 100644 --- a/include/fstree.h +++ b/include/fstree.h @@ -24,12 +24,15 @@ typedef struct fstree_defaults_t fstree_defaults_t; typedef struct tree_node_t tree_node_t; typedef struct file_info_t file_info_t; -typedef struct dir_info_t dir_info_t; typedef struct fstree_t fstree_t; #define container_of(ptr, type, member) \ ((type *)((char *)ptr - offsetof(type, member))) +enum { + FLAG_DIR_CREATED_IMPLICITLY = 0x01, +}; + /* Additional meta data stored in a tree_node_t for regular files. */ struct file_info_t { /* Linked list pointer for files in fstree_t */ @@ -46,15 +49,6 @@ struct file_info_t { bool already_matched; }; -/* Additional meta data stored in a tree_node_t for directories */ -struct dir_info_t { - /* Linked list head for children in the directory */ - tree_node_t *children; - - /* Set to true for implicitly generated directories. */ - bool created_implicitly; -}; - /* A node in a file system tree */ struct tree_node_t { /* Parent directory children linked list pointer. */ @@ -73,6 +67,7 @@ struct tree_node_t { sqfs_u32 mod_time; sqfs_u32 link_count; sqfs_u16 mode; + sqfs_u16 flags; /* SquashFS inode refernce number. 32 bit offset of the meta data block start (relative to inode table start), shifted left by 16 @@ -83,7 +78,7 @@ struct tree_node_t { /* Type specific data. "target" pointer is into payload area below. */ union { - dir_info_t dir; + tree_node_t *children; file_info_t file; char *target; sqfs_u64 devno; |