From a0d2f4d2a85adcb4114aea6fd353e40fb97ef17b Mon Sep 17 00:00:00 2001 From: Yttehs Date: Sun, 8 Dec 2024 15:31:00 +0800 Subject: [PATCH] chore: dummy implement syscall mount/umount --- kernel/src/main.rs | 4 ++-- kernel/src/syscall/fs.rs | 10 ++++++++++ kernel/src/syscall/mod.rs | 4 ++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/kernel/src/main.rs b/kernel/src/main.rs index 4137cf3..43a88be 100644 --- a/kernel/src/main.rs +++ b/kernel/src/main.rs @@ -58,13 +58,13 @@ fn run_test() -> ! { "getcwd", // "munmap", "pipe", - // "umount", + "umount", "close", "getppid", "chdir", "open", // "clone", - // "mount", + "mount", "exit", "sleep", // "mmap", diff --git a/kernel/src/syscall/fs.rs b/kernel/src/syscall/fs.rs index 975196a..61f5172 100644 --- a/kernel/src/syscall/fs.rs +++ b/kernel/src/syscall/fs.rs @@ -132,3 +132,13 @@ pub fn sys_pipe(pipe_ptr: *mut i32) -> isize { } 0 } + +pub fn sys_mount(_source_ptr: *const u8, _target_ptr: *const u8, _fs_type_ptr: *const u8) -> isize { + // unsupported for rust-fatfs + 0 +} + +pub fn sys_umount(_target_ptr: *const u8) -> isize { + // unsupported for rust-fatfs + 0 +} diff --git a/kernel/src/syscall/mod.rs b/kernel/src/syscall/mod.rs index e6a19de..9be2056 100644 --- a/kernel/src/syscall/mod.rs +++ b/kernel/src/syscall/mod.rs @@ -24,6 +24,8 @@ const SYSCALL_CLOSE: usize = 57; const SYSCALL_MKDIR: usize = 34; const SYSCALL_PIPE: usize = 59; const SYSCALL_NANO_SLEEP: usize = 101; +const SYSCALL_MOUNT: usize = 40; +const SYSCALL_UMOUNT: usize = 39; pub fn syscall(id: usize, args: [usize; 6]) -> isize { match id { @@ -45,6 +47,8 @@ pub fn syscall(id: usize, args: [usize; 6]) -> isize { SYSCALL_MKDIR => sys_mkdir(args[0], args[1] as *const u8, args[2]), SYSCALL_PIPE => sys_pipe(args[0] as *mut i32), SYSCALL_NANO_SLEEP => sys_nanosleep(args[0] as *const u8, args[1]), + SYSCALL_MOUNT => sys_mount(args[0] as *const u8, args[1] as *const u8, args[2] as *const u8), + SYSCALL_UMOUNT => sys_umount(args[0] as *const u8), _ => { error!("Unsupported syscall id: {}", id); sys_exit(-1);