Files
moss-kernel/src/fs/syscalls/at/mkdir.rs
Ashwin Naren 781b9b5c3f implement mkdir and unlink
rm, mkdir and rmdir now work in tmpfs
2025-12-18 15:35:09 +00:00

24 lines
695 B
Rust

use crate::fs::VFS;
use crate::fs::syscalls::at::resolve_at_start_node;
use crate::memory::uaccess::cstr::UserCStr;
use crate::process::fd_table::Fd;
use core::ffi::c_char;
use libkernel::fs::attr::FilePermissions;
use libkernel::fs::path::Path;
use libkernel::memory::address::TUA;
pub async fn sys_mkdirat(
dirfd: Fd,
path: TUA<c_char>,
mode: u16,
) -> libkernel::error::Result<usize> {
let mut buf = [0; 1024];
let path = Path::new(UserCStr::from_ptr(path).copy_from_user(&mut buf).await?);
let start_node = resolve_at_start_node(dirfd, path).await?;
let mode = FilePermissions::from_bits_retain(mode);
VFS.mkdir(path, start_node, mode).await?;
Ok(0)
}