Add support for open syscall

This commit is contained in:
LI Qing
2023-02-16 10:41:29 +08:00
parent 15d2e07a8c
commit f3fa998e7b
2 changed files with 8 additions and 2 deletions

View File

@ -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),

View File

@ -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<SyscallReturn> {
self::sys_openat(AT_FDCWD, pathname_addr, flags, mode)
}
/// File for output busybox ash log.
struct BusyBoxTraceFile;