mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-29 16:13:27 +00:00
Add support for open syscall
This commit is contained in:
@ -31,7 +31,7 @@ use crate::syscall::madvise::sys_madvise;
|
|||||||
use crate::syscall::mmap::sys_mmap;
|
use crate::syscall::mmap::sys_mmap;
|
||||||
use crate::syscall::mprotect::sys_mprotect;
|
use crate::syscall::mprotect::sys_mprotect;
|
||||||
use crate::syscall::munmap::sys_munmap;
|
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::poll::sys_poll;
|
||||||
use crate::syscall::prctl::sys_prctl;
|
use crate::syscall::prctl::sys_prctl;
|
||||||
use crate::syscall::prlimit64::sys_prlimit64;
|
use crate::syscall::prlimit64::sys_prlimit64;
|
||||||
@ -84,7 +84,7 @@ mod madvise;
|
|||||||
mod mmap;
|
mod mmap;
|
||||||
mod mprotect;
|
mod mprotect;
|
||||||
mod munmap;
|
mod munmap;
|
||||||
mod openat;
|
mod open;
|
||||||
mod poll;
|
mod poll;
|
||||||
mod prctl;
|
mod prctl;
|
||||||
mod prlimit64;
|
mod prlimit64;
|
||||||
@ -138,6 +138,7 @@ macro_rules! syscall_handler {
|
|||||||
define_syscall_nums!(
|
define_syscall_nums!(
|
||||||
SYS_READ = 0,
|
SYS_READ = 0,
|
||||||
SYS_WRITE = 1,
|
SYS_WRITE = 1,
|
||||||
|
SYS_OPEN = 2,
|
||||||
SYS_CLOSE = 3,
|
SYS_CLOSE = 3,
|
||||||
SYS_STAT = 4,
|
SYS_STAT = 4,
|
||||||
SYS_FSTAT = 5,
|
SYS_FSTAT = 5,
|
||||||
@ -246,6 +247,7 @@ pub fn syscall_dispatch(
|
|||||||
match syscall_number {
|
match syscall_number {
|
||||||
SYS_READ => syscall_handler!(3, sys_read, args),
|
SYS_READ => syscall_handler!(3, sys_read, args),
|
||||||
SYS_WRITE => syscall_handler!(3, sys_write, 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_CLOSE => syscall_handler!(1, sys_close, args),
|
||||||
SYS_STAT => syscall_handler!(2, sys_stat, args),
|
SYS_STAT => syscall_handler!(2, sys_stat, args),
|
||||||
SYS_FSTAT => syscall_handler!(2, sys_fstat, args),
|
SYS_FSTAT => syscall_handler!(2, sys_fstat, args),
|
||||||
|
@ -67,6 +67,10 @@ pub fn sys_openat(
|
|||||||
Ok(SyscallReturn::Return(fd as _))
|
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.
|
/// File for output busybox ash log.
|
||||||
struct BusyBoxTraceFile;
|
struct BusyBoxTraceFile;
|
||||||
|
|
Reference in New Issue
Block a user