4 default_file_close(struct v_file* file)
10 default_file_seek(struct v_inode* inode, size_t offset)
16 default_inode_open(struct v_inode* this, struct v_file* file)
22 default_file_read(struct v_inode* inode, void* buffer, size_t len, size_t fpos)
28 default_file_write(struct v_inode* inode, void* buffer, size_t len, size_t fpos)
34 default_file_readdir(struct v_file* file, struct dir_context* dctx)
37 struct v_dnode *pos, *n;
38 llist_for_each(pos, n, &file->dnode->children, siblings)
40 if (i < dctx->index) {
44 dctx->read_complete_callback(dctx, pos->name.value, pos->name.len, 0);
50 default_inode_dirlookup(struct v_inode* this, struct v_dnode* dnode)
56 default_inode_rename(struct v_inode* from_inode,
57 struct v_dnode* from_dnode,
58 struct v_dnode* to_dnode)
64 default_inode_sync(struct v_inode* this)
70 default_inode_rmdir(struct v_inode* this, struct v_dnode* dir)
76 default_inode_mkdir(struct v_inode* this, struct v_dnode* dir)
81 struct v_file_ops default_file_ops = { .close = default_file_close,
82 .read = default_file_read,
83 .seek = default_file_seek,
84 .readdir = default_file_readdir };
86 struct v_inode_ops default_inode_ops = { .dir_lookup = default_inode_dirlookup,
87 .sync = default_inode_sync,
88 .open = default_inode_open,
89 .rename = default_inode_rename,
90 .rmdir = default_inode_rmdir };