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);
52 default_inode_dirlookup(struct v_inode* this, struct v_dnode* dnode)
58 default_inode_rename(struct v_inode* from_inode,
59 struct v_dnode* from_dnode,
60 struct v_dnode* to_dnode)
66 default_inode_sync(struct v_inode* this)
72 default_inode_rmdir(struct v_inode* this, struct v_dnode* dir)
78 default_inode_mkdir(struct v_inode* this, struct v_dnode* dir)
83 struct v_file_ops default_file_ops = { .close = default_file_close,
84 .read = default_file_read,
85 .seek = default_file_seek,
86 .readdir = default_file_readdir };
88 struct v_inode_ops default_inode_ops = { .dir_lookup = default_inode_dirlookup,
89 .sync = default_inode_sync,
90 .open = default_inode_open,
91 .rename = default_inode_rename,
92 .rmdir = default_inode_rmdir };