diff options
author | Ian Moffett <ian@osmora.org> | 2025-09-19 01:41:56 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-09-19 01:41:56 -0400 |
commit | 017a6a964c06eb8a3dbe30281d5a3bb3ac8f3ca5 (patch) | |
tree | efc140a17af6882f2574c3eb74730f31282b7aee /src/sys/os | |
parent | 6412ff0bfbc76d302ef8f272db94be20195ba07a (diff) |
kernel: mount: Add mountpoint allocation
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/os')
-rw-r--r-- | src/sys/os/vfs_mount.c | 29 |
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 */ |