+struct twifs_node*
+twifs_file_node(struct twifs_node* parent, const char* name, int name_len)
+{
+ struct twifs_node* twi_node = __twifs_new_node(parent, name, name_len);
+ twi_node->itype = VFS_INODE_TYPE_FILE;
+
+ struct v_inode* twi_inode = __twifs_create_inode(twi_node);
+ twi_node->inode = twi_inode;
+
+ return twi_inode;
+}
+
+struct twifs_node*
+twifs_dir_node(struct twifs_node* parent, const char* name, int name_len)
+{
+ struct twifs_node* twi_node = __twifs_new_node(parent, name, name_len);
+ twi_node->itype = VFS_INODE_TYPE_DIR;
+ twi_node->fops.readdir = __twifs_iterate_dir;
+
+ struct v_inode* twi_inode = __twifs_create_inode(twi_node);
+ struct twifs_node* dot = __twifs_new_node(twi_node, ".", 1);
+ struct twifs_node* ddot = __twifs_new_node(twi_node, "..", 2);
+
+ dot->itype = VFS_INODE_TYPE_DIR;
+ ddot->itype = VFS_INODE_TYPE_DIR;
+
+ twi_node->inode = twi_inode;
+ dot->inode = twi_inode;
+ ddot->inode = parent ? parent->inode : twi_inode;
+
+ return twi_node;
+}
+