devfs: use iovec_iterator internally

This commit is contained in:
Matheus
2024-09-21 13:53:39 -03:00
parent 01c883917f
commit e8c2f1fbf3
14 changed files with 149 additions and 97 deletions
+20 -2
View File
@@ -85,7 +85,16 @@ int devfs_read(vnode_t *node, void *buffer, size_t size, uintmax_t offset, int f
if (devnode->devops->read == NULL)
return ENODEV;
return devnode->devops->read(devnode->attr.rdevminor, buffer, size, offset, flags, readc);
// TODO remove this once the whole fs uses iovec
iovec_iterator_t iovec_iterator;
iovec_t iovec = {
.addr = buffer,
.len = size
};
iovec_iterator_init(&iovec_iterator, &iovec, 1);
return devnode->devops->read(devnode->attr.rdevminor, &iovec_iterator, size, offset, flags, readc);
}
int devfs_write(vnode_t *node, void *buffer, size_t size, uintmax_t offset, int flags, size_t *writec, cred_t *cred) {
@@ -102,7 +111,16 @@ int devfs_write(vnode_t *node, void *buffer, size_t size, uintmax_t offset, int
if (devnode->devops->write == NULL)
return ENODEV;
return devnode->devops->write(devnode->attr.rdevminor, buffer, size, offset, flags, writec);
// TODO remove this once the whole fs uses iovec
iovec_iterator_t iovec_iterator;
iovec_t iovec = {
.addr = buffer,
.len = size
};
iovec_iterator_init(&iovec_iterator, &iovec, 1);
return devnode->devops->write(devnode->attr.rdevminor, &iovec_iterator, size, offset, flags, writec);
}
int devfs_lookup(vnode_t *node, char *name, vnode_t **result, cred_t *cred) {