volatile static inode_t ino = 0;
extern const struct v_inode_ops ramfs_inode_ops;
+extern const struct v_file_ops ramfs_file_ops;
int
ramfs_readdir(struct v_file* file, struct dir_context* dctx)
llist_for_each(pos, n, &file->dnode->children, siblings)
{
if (i++ >= dctx->index) {
- dctx->read_complete_callback(
- dctx, pos->name.value, pos->name.len, 0);
+ dctx->read_complete_callback(dctx,
+ pos->name.value,
+ pos->name.len,
+ vfs_get_dtype(pos->inode->itype));
return 1;
}
}
{
inode->id = ino++;
inode->ops = &ramfs_inode_ops;
- inode->default_fops = &default_file_ops;
+ inode->default_fops = &ramfs_file_ops;
}
int
default_inode_dirlookup,
.create = ramfs_create,
.open = default_inode_open,
- .rename = default_inode_rename };
\ No newline at end of file
+ .rename = default_inode_rename };
+
+const struct v_file_ops ramfs_file_ops = { .readdir = ramfs_readdir,
+ .close = default_file_close,
+ .read = default_file_read,
+ .write = default_file_write,
+ .seek = default_file_seek };
\ No newline at end of file