summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-03-01 20:33:18 -0500
committerIan Moffett <ian@osmora.org>2024-03-01 20:41:50 -0500
commit899372a1a7eb7db0ad29046fdf36c766c45b8993 (patch)
treef46c997784427feccc5223c4678646e28f0b3f98
parent87207136edcc91c08b7e27cb052765795e2f7c90 (diff)
kernel: vfs: Add wrappers over VFS operations
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--sys/include/sys/vfs.h6
-rw-r--r--sys/kern/vfs_subr.c13
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/include/sys/vfs.h b/sys/include/sys/vfs.h
index 6b96cce..a684c3f 100644
--- a/sys/include/sys/vfs.h
+++ b/sys/include/sys/vfs.h
@@ -35,14 +35,20 @@
#include <sys/types.h>
#if defined(_KERNEL)
+
+extern struct vnode *g_root_vnode;
+
void vfs_init(void);
struct fs_info *vfs_byname(const char *name);
+int vfs_vget(struct vnode *parent, const char *name, struct vnode **vp);
struct vnode *vfs_path_to_node(const char *path);
char *vfs_get_fname_at(const char *path, size_t idx);
int vfs_rootname(const char *path, char **new_path);
bool vfs_is_valid_path(const char *path);
ssize_t vfs_hash_path(const char *path);
+ssize_t vfs_read(struct vnode *vp, char *buf, size_t count);
+
#endif /* defined(_KERNEL) */
#endif /* !_SYS_VFS_H_ */
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 5740edf..5155c9a 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -216,3 +216,16 @@ vfs_rootname(const char *path, char **new_path)
*new_path = tmp;
return 0;
}
+
+
+int
+vfs_vget(struct vnode *parent, const char *name, struct vnode **vp)
+{
+ return parent->vops->vget(parent, name, vp);
+}
+
+ssize_t
+vfs_read(struct vnode *vp, char *buf, size_t count)
+{
+ return vp->vops->read(vp, buf, count);
+}