summaryrefslogtreecommitdiff
path: root/src/sys/os/vfs_mount.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-09-19 01:41:56 -0400
committerIan Moffett <ian@osmora.org>2025-09-19 01:41:56 -0400
commit017a6a964c06eb8a3dbe30281d5a3bb3ac8f3ca5 (patch)
treeefc140a17af6882f2574c3eb74730f31282b7aee /src/sys/os/vfs_mount.c
parent6412ff0bfbc76d302ef8f272db94be20195ba07a (diff)
kernel: mount: Add mountpoint allocation
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/os/vfs_mount.c')
-rw-r--r--src/sys/os/vfs_mount.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/sys/os/vfs_mount.c b/src/sys/os/vfs_mount.c
index f1d7ffd..69aec10 100644
--- a/src/sys/os/vfs_mount.c
+++ b/src/sys/os/vfs_mount.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/syslog.h>
+#include <sys/param.h>
#include <sys/errno.h>
#include <sys/cdefs.h>
#include <sys/mount.h>
@@ -41,6 +42,34 @@
*/
static struct mountlist root;
+
+/*
+ * Allocate a new mountpoint
+ */
+int
+mount_alloc(const char *name, struct mount **mp_res)
+{
+ struct mount *mp;
+ size_t len, slen;
+
+ if (mp_res == NULL || name == NULL) {
+ return -EINVAL;
+ }
+
+ mp = kalloc(sizeof(*mp));
+ if (mp == NULL) {
+ printf("mount_alloc: allocation failure\n");
+ return -ENOMEM;
+ }
+
+ slen = strlen(name);
+ len = MIN(sizeof(mp->name), slen);
+ memcpy(mp->name, name, len);
+
+ *mp_res = mp;
+ return 0;
+}
+
/*
* Mount a filesystem
*/