From f3fa998e7bc53abc180f0e77ac286dab2fd24e30 Mon Sep 17 00:00:00 2001 From: LI Qing Date: Thu, 16 Feb 2023 10:41:29 +0800 Subject: [PATCH] Add support for open syscall --- src/services/libs/jinux-std/src/syscall/mod.rs | 6 ++++-- .../libs/jinux-std/src/syscall/{openat.rs => open.rs} | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) rename src/services/libs/jinux-std/src/syscall/{openat.rs => open.rs} (94%) diff --git a/src/services/libs/jinux-std/src/syscall/mod.rs b/src/services/libs/jinux-std/src/syscall/mod.rs index 8007e4a04..b7c3b9ed8 100644 --- a/src/services/libs/jinux-std/src/syscall/mod.rs +++ b/src/services/libs/jinux-std/src/syscall/mod.rs @@ -31,7 +31,7 @@ use crate::syscall::madvise::sys_madvise; use crate::syscall::mmap::sys_mmap; use crate::syscall::mprotect::sys_mprotect; use crate::syscall::munmap::sys_munmap; -use crate::syscall::openat::sys_openat; +use crate::syscall::open::{sys_open, sys_openat}; use crate::syscall::poll::sys_poll; use crate::syscall::prctl::sys_prctl; use crate::syscall::prlimit64::sys_prlimit64; @@ -84,7 +84,7 @@ mod madvise; mod mmap; mod mprotect; mod munmap; -mod openat; +mod open; mod poll; mod prctl; mod prlimit64; @@ -138,6 +138,7 @@ macro_rules! syscall_handler { define_syscall_nums!( SYS_READ = 0, SYS_WRITE = 1, + SYS_OPEN = 2, SYS_CLOSE = 3, SYS_STAT = 4, SYS_FSTAT = 5, @@ -246,6 +247,7 @@ pub fn syscall_dispatch( match syscall_number { SYS_READ => syscall_handler!(3, sys_read, args), SYS_WRITE => syscall_handler!(3, sys_write, args), + SYS_OPEN => syscall_handler!(3, sys_open, args), SYS_CLOSE => syscall_handler!(1, sys_close, args), SYS_STAT => syscall_handler!(2, sys_stat, args), SYS_FSTAT => syscall_handler!(2, sys_fstat, args), diff --git a/src/services/libs/jinux-std/src/syscall/openat.rs b/src/services/libs/jinux-std/src/syscall/open.rs similarity index 94% rename from src/services/libs/jinux-std/src/syscall/openat.rs rename to src/services/libs/jinux-std/src/syscall/open.rs index 0f63238f0..a67f0c08c 100644 --- a/src/services/libs/jinux-std/src/syscall/openat.rs +++ b/src/services/libs/jinux-std/src/syscall/open.rs @@ -67,6 +67,10 @@ pub fn sys_openat( Ok(SyscallReturn::Return(fd as _)) } +pub fn sys_open(pathname_addr: Vaddr, flags: u32, mode: u16) -> Result { + self::sys_openat(AT_FDCWD, pathname_addr, flags, mode) +} + /// File for output busybox ash log. struct BusyBoxTraceFile;