mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 11:16:47 +00:00
fix it back to old syscall printing style
This commit is contained in:
parent
de148a1dd6
commit
b9f27f44e4
@ -1,7 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
arch::{
|
arch::{
|
||||||
ipc::signal::X86_64SignalArch,
|
ipc::signal::X86_64SignalArch,
|
||||||
syscall::nr::{SysCall, SYS_ARCH_PRCTL, SYS_RT_SIGRETURN},
|
syscall::nr::{SYS_ARCH_PRCTL, SYS_RT_SIGRETURN},
|
||||||
CurrentIrqArch,
|
CurrentIrqArch,
|
||||||
},
|
},
|
||||||
exception::InterruptArch,
|
exception::InterruptArch,
|
||||||
@ -53,7 +53,7 @@ macro_rules! syscall_return {
|
|||||||
|
|
||||||
if $show {
|
if $show {
|
||||||
let pid = ProcessManager::current_pcb().pid();
|
let pid = ProcessManager::current_pcb().pid();
|
||||||
debug!("[SYS] [Pid: {:?}] [Retn: {:?}]", pid, ret as i64);
|
debug!("syscall return:pid={:?},ret= {:?}\n", pid, ret as isize);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
@ -63,24 +63,6 @@ macro_rules! syscall_return {
|
|||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! normal_syscall_return {
|
|
||||||
($val:expr, $regs:expr, $show:expr) => {{
|
|
||||||
let ret = $val;
|
|
||||||
|
|
||||||
if $show {
|
|
||||||
let pid = ProcessManager::current_pcb().pid();
|
|
||||||
debug!("[SYS] [Pid: {:?}] [Retn: {:?}]", pid, ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
$regs.rax = ret.unwrap_or_else(|e| e.to_posix_errno() as usize) as u64;
|
|
||||||
|
|
||||||
unsafe {
|
|
||||||
CurrentIrqArch::interrupt_disable();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) {
|
pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) {
|
||||||
let syscall_num = frame.rax as usize;
|
let syscall_num = frame.rax as usize;
|
||||||
@ -105,38 +87,15 @@ pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) {
|
|||||||
];
|
];
|
||||||
mfence();
|
mfence();
|
||||||
let pid = ProcessManager::current_pcb().pid();
|
let pid = ProcessManager::current_pcb().pid();
|
||||||
let mut show = (syscall_num != SYS_SCHED) && (pid.data() >= 7);
|
let show = false;
|
||||||
// let mut show = true;
|
// let show = if syscall_num != SYS_SCHED && pid.data() >= 7 {
|
||||||
|
// true
|
||||||
|
// } else {
|
||||||
|
// false
|
||||||
|
// };
|
||||||
|
|
||||||
let to_print = SysCall::try_from(syscall_num);
|
if show {
|
||||||
if let Ok(to_print) = to_print {
|
debug!("syscall: pid: {:?}, num={:?}\n", pid, syscall_num);
|
||||||
use SysCall::*;
|
|
||||||
match to_print {
|
|
||||||
SYS_ACCEPT | SYS_ACCEPT4 | SYS_BIND | SYS_CONNECT | SYS_SHUTDOWN | SYS_LISTEN => {
|
|
||||||
show &= true;
|
|
||||||
}
|
|
||||||
SYS_RECVFROM | SYS_SENDTO | SYS_SENDMSG | SYS_RECVMSG => {
|
|
||||||
show &= true;
|
|
||||||
}
|
|
||||||
SYS_SOCKET | SYS_GETSOCKNAME | SYS_GETPEERNAME | SYS_SOCKETPAIR | SYS_SETSOCKOPT
|
|
||||||
| SYS_GETSOCKOPT => {
|
|
||||||
show &= true;
|
|
||||||
}
|
|
||||||
SYS_OPEN | SYS_OPENAT | SYS_CREAT | SYS_CLOSE => {
|
|
||||||
show &= true;
|
|
||||||
}
|
|
||||||
SYS_READ | SYS_WRITE | SYS_READV | SYS_WRITEV | SYS_PREAD64 | SYS_PWRITE64
|
|
||||||
| SYS_PREADV | SYS_PWRITEV | SYS_PREADV2 => {
|
|
||||||
show &= true;
|
|
||||||
}
|
|
||||||
_ => {
|
|
||||||
show &= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
show &= false;
|
|
||||||
if show {
|
|
||||||
debug!("[SYS] [Pid: {:?}] [Call: {:?}]", pid, to_print);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Arch specific syscall
|
// Arch specific syscall
|
||||||
@ -149,11 +108,21 @@ pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
SYS_ARCH_PRCTL => {
|
SYS_ARCH_PRCTL => {
|
||||||
normal_syscall_return!(Syscall::arch_prctl(args[0], args[1]), frame, show);
|
syscall_return!(
|
||||||
|
Syscall::arch_prctl(args[0], args[1])
|
||||||
|
.unwrap_or_else(|e| e.to_posix_errno() as usize),
|
||||||
|
frame,
|
||||||
|
show
|
||||||
|
);
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
normal_syscall_return!(Syscall::handle(syscall_num, &args, frame), frame, show);
|
syscall_return!(
|
||||||
|
Syscall::handle(syscall_num, &args, frame).unwrap_or_else(|e| e.to_posix_errno() as usize)
|
||||||
|
as u64,
|
||||||
|
frame,
|
||||||
|
show
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 系统调用初始化
|
/// 系统调用初始化
|
||||||
|
@ -355,381 +355,3 @@ pub const SYS_WAIT4: usize = 61;
|
|||||||
pub const SYS_WAITID: usize = 247;
|
pub const SYS_WAITID: usize = 247;
|
||||||
pub const SYS_WRITE: usize = 1;
|
pub const SYS_WRITE: usize = 1;
|
||||||
pub const SYS_WRITEV: usize = 20;
|
pub const SYS_WRITEV: usize = 20;
|
||||||
|
|
||||||
use num_traits::{FromPrimitive, ToPrimitive};
|
|
||||||
use system_error::SystemError;
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
#[derive(Debug, Clone, Copy, FromPrimitive, ToPrimitive, PartialEq, Eq)]
|
|
||||||
pub enum SysCall {
|
|
||||||
SYS__SYSCTL = 156,
|
|
||||||
SYS_ACCEPT = 43,
|
|
||||||
SYS_ACCEPT4 = 288,
|
|
||||||
SYS_ACCESS = 21,
|
|
||||||
SYS_ACCT = 163,
|
|
||||||
SYS_ADD_KEY = 248,
|
|
||||||
SYS_ADJTIMEX = 159,
|
|
||||||
SYS_AFS_SYSCALL = 183,
|
|
||||||
SYS_ALARM = 37,
|
|
||||||
SYS_ARCH_PRCTL = 158,
|
|
||||||
SYS_BIND = 49,
|
|
||||||
SYS_BPF = 321,
|
|
||||||
SYS_BRK = 12,
|
|
||||||
SYS_CAPGET = 125,
|
|
||||||
SYS_CAPSET = 126,
|
|
||||||
SYS_CHDIR = 80,
|
|
||||||
SYS_CHMOD = 90,
|
|
||||||
SYS_CHOWN = 92,
|
|
||||||
SYS_CHROOT = 161,
|
|
||||||
SYS_CLOCK_ADJTIME = 305,
|
|
||||||
SYS_CLOCK_GETRES = 229,
|
|
||||||
SYS_CLOCK_GETTIME = 228,
|
|
||||||
SYS_CLOCK_NANOSLEEP = 230,
|
|
||||||
SYS_CLOCK_SETTIME = 227,
|
|
||||||
SYS_CLONE = 56,
|
|
||||||
SYS_CLONE3 = 435,
|
|
||||||
SYS_CLOSE = 3,
|
|
||||||
SYS_CLOSE_RANGE = 436,
|
|
||||||
SYS_CONNECT = 42,
|
|
||||||
SYS_COPY_FILE_RANGE = 326,
|
|
||||||
SYS_CREAT = 85,
|
|
||||||
SYS_CREATE_MODULE = 174,
|
|
||||||
SYS_DELETE_MODULE = 176,
|
|
||||||
SYS_DUP = 32,
|
|
||||||
SYS_DUP2 = 33,
|
|
||||||
SYS_DUP3 = 292,
|
|
||||||
SYS_EPOLL_CREATE = 213,
|
|
||||||
SYS_EPOLL_CREATE1 = 291,
|
|
||||||
SYS_EPOLL_CTL = 233,
|
|
||||||
SYS_EPOLL_CTL_OLD = 214,
|
|
||||||
SYS_EPOLL_PWAIT = 281,
|
|
||||||
SYS_EPOLL_PWAIT2 = 441,
|
|
||||||
SYS_EPOLL_WAIT = 232,
|
|
||||||
SYS_EPOLL_WAIT_OLD = 215,
|
|
||||||
SYS_EVENTFD = 284,
|
|
||||||
SYS_EVENTFD2 = 290,
|
|
||||||
SYS_EXECVE = 59,
|
|
||||||
SYS_EXECVEAT = 322,
|
|
||||||
SYS_EXIT = 60,
|
|
||||||
SYS_EXIT_GROUP = 231,
|
|
||||||
SYS_FACCESSAT = 269,
|
|
||||||
SYS_FACCESSAT2 = 439,
|
|
||||||
SYS_FADVISE64 = 221,
|
|
||||||
SYS_FALLOCATE = 285,
|
|
||||||
SYS_FANOTIFY_INIT = 300,
|
|
||||||
SYS_FANOTIFY_MARK = 301,
|
|
||||||
SYS_FCHDIR = 81,
|
|
||||||
SYS_FCHMOD = 91,
|
|
||||||
SYS_FCHMODAT = 268,
|
|
||||||
SYS_FCHOWN = 93,
|
|
||||||
SYS_FCHOWNAT = 260,
|
|
||||||
SYS_FCNTL = 72,
|
|
||||||
SYS_FDATASYNC = 75,
|
|
||||||
SYS_FGETXATTR = 193,
|
|
||||||
SYS_FINIT_MODULE = 313,
|
|
||||||
SYS_FLISTXATTR = 196,
|
|
||||||
SYS_FLOCK = 73,
|
|
||||||
SYS_FORK = 57,
|
|
||||||
SYS_FREMOVEXATTR = 199,
|
|
||||||
SYS_FSCONFIG = 431,
|
|
||||||
SYS_FSETXATTR = 190,
|
|
||||||
SYS_FSMOUNT = 432,
|
|
||||||
SYS_FSOPEN = 430,
|
|
||||||
SYS_FSPICK = 433,
|
|
||||||
SYS_FSTAT = 5,
|
|
||||||
SYS_FSTATFS = 138,
|
|
||||||
SYS_FSYNC = 74,
|
|
||||||
SYS_FTRUNCATE = 77,
|
|
||||||
SYS_FUTEX = 202,
|
|
||||||
SYS_FUTIMESAT = 261,
|
|
||||||
SYS_GET_KERNEL_SYMS = 177,
|
|
||||||
SYS_GET_MEMPOLICY = 239,
|
|
||||||
SYS_GET_ROBUST_LIST = 274,
|
|
||||||
SYS_GET_THREAD_AREA = 211,
|
|
||||||
SYS_GETCPU = 309,
|
|
||||||
SYS_GETCWD = 79,
|
|
||||||
SYS_GETDENTS = 78,
|
|
||||||
SYS_GETDENTS64 = 217,
|
|
||||||
SYS_GETEGID = 108,
|
|
||||||
SYS_GETEUID = 107,
|
|
||||||
SYS_GETGID = 104,
|
|
||||||
SYS_GETGROUPS = 115,
|
|
||||||
SYS_GETITIMER = 36,
|
|
||||||
SYS_GETPEERNAME = 52,
|
|
||||||
SYS_GETPGID = 121,
|
|
||||||
SYS_GETPGRP = 111,
|
|
||||||
SYS_GETPID = 39,
|
|
||||||
SYS_GETPMSG = 181,
|
|
||||||
SYS_GETPPID = 110,
|
|
||||||
SYS_GETPRIORITY = 140,
|
|
||||||
SYS_GETRANDOM = 318,
|
|
||||||
SYS_GETRESGID = 120,
|
|
||||||
SYS_GETRESUID = 118,
|
|
||||||
SYS_GETRLIMIT = 97,
|
|
||||||
SYS_GETRUSAGE = 98,
|
|
||||||
SYS_GETSID = 124,
|
|
||||||
SYS_GETSOCKNAME = 51,
|
|
||||||
SYS_GETSOCKOPT = 55,
|
|
||||||
SYS_GETTID = 186,
|
|
||||||
SYS_GETTIMEOFDAY = 96,
|
|
||||||
SYS_GETUID = 102,
|
|
||||||
SYS_GETXATTR = 191,
|
|
||||||
SYS_INIT_MODULE = 175,
|
|
||||||
SYS_INOTIFY_ADD_WATCH = 254,
|
|
||||||
SYS_INOTIFY_INIT = 253,
|
|
||||||
SYS_INOTIFY_INIT1 = 294,
|
|
||||||
SYS_INOTIFY_RM_WATCH = 255,
|
|
||||||
SYS_IO_CANCEL = 210,
|
|
||||||
SYS_IO_DESTROY = 207,
|
|
||||||
SYS_IO_GETEVENTS = 208,
|
|
||||||
SYS_IO_PGETEVENTS = 333,
|
|
||||||
SYS_IO_SETUP = 206,
|
|
||||||
SYS_IO_SUBMIT = 209,
|
|
||||||
SYS_IO_URING_ENTER = 426,
|
|
||||||
SYS_IO_URING_REGISTER = 427,
|
|
||||||
SYS_IO_URING_SETUP = 425,
|
|
||||||
SYS_IOCTL = 16,
|
|
||||||
SYS_IOPERM = 173,
|
|
||||||
SYS_IOPL = 172,
|
|
||||||
SYS_IOPRIO_GET = 252,
|
|
||||||
SYS_IOPRIO_SET = 251,
|
|
||||||
SYS_KCMP = 312,
|
|
||||||
SYS_KEXEC_FILE_LOAD = 320,
|
|
||||||
SYS_KEXEC_LOAD = 246,
|
|
||||||
SYS_KEYCTL = 250,
|
|
||||||
SYS_KILL = 62,
|
|
||||||
SYS_LCHOWN = 94,
|
|
||||||
SYS_LGETXATTR = 192,
|
|
||||||
SYS_LINK = 86,
|
|
||||||
SYS_LINKAT = 265,
|
|
||||||
SYS_LISTEN = 50,
|
|
||||||
SYS_LISTXATTR = 194,
|
|
||||||
SYS_LLISTXATTR = 195,
|
|
||||||
SYS_LOOKUP_DCOOKIE = 212,
|
|
||||||
SYS_LREMOVEXATTR = 198,
|
|
||||||
SYS_LSEEK = 8,
|
|
||||||
SYS_LSETXATTR = 189,
|
|
||||||
SYS_LSTAT = 6,
|
|
||||||
SYS_MADVISE = 28,
|
|
||||||
SYS_MBIND = 237,
|
|
||||||
SYS_MEMBARRIER = 324,
|
|
||||||
SYS_MEMFD_CREATE = 319,
|
|
||||||
SYS_MIGRATE_PAGES = 256,
|
|
||||||
SYS_MINCORE = 27,
|
|
||||||
SYS_MKDIR = 83,
|
|
||||||
SYS_MKDIRAT = 258,
|
|
||||||
SYS_MKNOD = 133,
|
|
||||||
SYS_MKNODAT = 259,
|
|
||||||
SYS_MLOCK = 149,
|
|
||||||
SYS_MLOCK2 = 325,
|
|
||||||
SYS_MLOCKALL = 151,
|
|
||||||
SYS_MMAP = 9,
|
|
||||||
SYS_MODIFY_LDT = 154,
|
|
||||||
SYS_MOUNT = 165,
|
|
||||||
SYS_MOUNT_SETATTR = 442,
|
|
||||||
SYS_MOVE_MOUNT = 429,
|
|
||||||
SYS_MOVE_PAGES = 279,
|
|
||||||
SYS_MPROTECT = 10,
|
|
||||||
SYS_MQ_GETSETATTR = 245,
|
|
||||||
SYS_MQ_NOTIFY = 244,
|
|
||||||
SYS_MQ_OPEN = 240,
|
|
||||||
SYS_MQ_TIMEDRECEIVE = 243,
|
|
||||||
SYS_MQ_TIMEDSEND = 242,
|
|
||||||
SYS_MQ_UNLINK = 241,
|
|
||||||
SYS_MREMAP = 25,
|
|
||||||
SYS_MSGCTL = 71,
|
|
||||||
SYS_MSGGET = 68,
|
|
||||||
SYS_MSGRCV = 70,
|
|
||||||
SYS_MSGSND = 69,
|
|
||||||
SYS_MSYNC = 26,
|
|
||||||
SYS_MUNLOCK = 150,
|
|
||||||
SYS_MUNLOCKALL = 152,
|
|
||||||
SYS_MUNMAP = 11,
|
|
||||||
SYS_NAME_TO_HANDLE_AT = 303,
|
|
||||||
SYS_NANOSLEEP = 35,
|
|
||||||
SYS_NEWFSTATAT = 262,
|
|
||||||
SYS_NFSSERVCTL = 180,
|
|
||||||
SYS_OPEN = 2,
|
|
||||||
SYS_OPEN_BY_HANDLE_AT = 304,
|
|
||||||
SYS_OPEN_TREE = 428,
|
|
||||||
SYS_OPENAT = 257,
|
|
||||||
SYS_OPENAT2 = 437,
|
|
||||||
SYS_PAUSE = 34,
|
|
||||||
SYS_PERF_EVENT_OPEN = 298,
|
|
||||||
SYS_PERSONALITY = 135,
|
|
||||||
SYS_PIDFD_GETFD = 438,
|
|
||||||
SYS_PIDFD_OPEN = 434,
|
|
||||||
SYS_PIDFD_SEND_SIGNAL = 424,
|
|
||||||
SYS_PIPE = 22,
|
|
||||||
SYS_PIPE2 = 293,
|
|
||||||
SYS_PIVOT_ROOT = 155,
|
|
||||||
SYS_PKEY_ALLOC = 330,
|
|
||||||
SYS_PKEY_FREE = 331,
|
|
||||||
SYS_PKEY_MPROTECT = 329,
|
|
||||||
SYS_POLL = 7,
|
|
||||||
SYS_PPOLL = 271,
|
|
||||||
SYS_PRCTL = 157,
|
|
||||||
SYS_PREAD64 = 17,
|
|
||||||
SYS_PREADV = 295,
|
|
||||||
SYS_PREADV2 = 327,
|
|
||||||
SYS_PRLIMIT64 = 302,
|
|
||||||
SYS_PROCESS_MADVISE = 440,
|
|
||||||
SYS_PROCESS_VM_READV = 310,
|
|
||||||
SYS_PROCESS_VM_WRITEV = 311,
|
|
||||||
SYS_PSELECT6 = 270,
|
|
||||||
SYS_PTRACE = 101,
|
|
||||||
SYS_PUTPMSG = 182,
|
|
||||||
SYS_PWRITE64 = 18,
|
|
||||||
SYS_PWRITEV = 296,
|
|
||||||
SYS_PWRITEV2 = 328,
|
|
||||||
SYS_QUERY_MODULE = 178,
|
|
||||||
SYS_QUOTACTL = 179,
|
|
||||||
SYS_READ = 0,
|
|
||||||
SYS_READAHEAD = 187,
|
|
||||||
SYS_READLINK = 89,
|
|
||||||
SYS_READLINKAT = 267,
|
|
||||||
SYS_READV = 19,
|
|
||||||
SYS_REBOOT = 169,
|
|
||||||
SYS_RECVFROM = 45,
|
|
||||||
SYS_RECVMMSG = 299,
|
|
||||||
SYS_RECVMSG = 47,
|
|
||||||
SYS_REMAP_FILE_PAGES = 216,
|
|
||||||
SYS_REMOVEXATTR = 197,
|
|
||||||
SYS_RENAME = 82,
|
|
||||||
SYS_RENAMEAT = 264,
|
|
||||||
SYS_RENAMEAT2 = 316,
|
|
||||||
SYS_REQUEST_KEY = 249,
|
|
||||||
SYS_RESTART_SYSCALL = 219,
|
|
||||||
SYS_RMDIR = 84,
|
|
||||||
SYS_RSEQ = 334,
|
|
||||||
SYS_RT_SIGACTION = 13,
|
|
||||||
SYS_RT_SIGPENDING = 127,
|
|
||||||
SYS_RT_SIGPROCMASK = 14,
|
|
||||||
SYS_RT_SIGQUEUEINFO = 129,
|
|
||||||
SYS_RT_SIGRETURN = 15,
|
|
||||||
SYS_RT_SIGSUSPEND = 130,
|
|
||||||
SYS_RT_SIGTIMEDWAIT = 128,
|
|
||||||
SYS_RT_TGSIGQUEUEINFO = 297,
|
|
||||||
SYS_SCHED_GET_PRIORITY_MAX = 146,
|
|
||||||
SYS_SCHED_GET_PRIORITY_MIN = 147,
|
|
||||||
SYS_SCHED_GETAFFINITY = 204,
|
|
||||||
SYS_SCHED_GETATTR = 315,
|
|
||||||
SYS_SCHED_GETPARAM = 143,
|
|
||||||
SYS_SCHED_GETSCHEDULER = 145,
|
|
||||||
SYS_SCHED_RR_GET_INTERVAL = 148,
|
|
||||||
SYS_SCHED_SETAFFINITY = 203,
|
|
||||||
SYS_SCHED_SETATTR = 314,
|
|
||||||
SYS_SCHED_SETPARAM = 142,
|
|
||||||
SYS_SCHED_SETSCHEDULER = 144,
|
|
||||||
SYS_SCHED_YIELD = 24,
|
|
||||||
SYS_SECCOMP = 317,
|
|
||||||
SYS_SECURITY = 185,
|
|
||||||
SYS_SELECT = 23,
|
|
||||||
SYS_SEMCTL = 66,
|
|
||||||
SYS_SEMGET = 64,
|
|
||||||
SYS_SEMOP = 65,
|
|
||||||
SYS_SEMTIMEDOP = 220,
|
|
||||||
SYS_SENDFILE = 40,
|
|
||||||
SYS_SENDMMSG = 307,
|
|
||||||
SYS_SENDMSG = 46,
|
|
||||||
SYS_SENDTO = 44,
|
|
||||||
SYS_SET_MEMPOLICY = 238,
|
|
||||||
SYS_SET_ROBUST_LIST = 273,
|
|
||||||
SYS_SET_THREAD_AREA = 205,
|
|
||||||
SYS_SET_TID_ADDRESS = 218,
|
|
||||||
SYS_SETDOMAINNAME = 171,
|
|
||||||
SYS_SETFSGID = 123,
|
|
||||||
SYS_SETFSUID = 122,
|
|
||||||
SYS_SETGID = 106,
|
|
||||||
SYS_SETGROUPS = 116,
|
|
||||||
SYS_SETHOSTNAME = 170,
|
|
||||||
SYS_SETITIMER = 38,
|
|
||||||
SYS_SETNS = 308,
|
|
||||||
SYS_SETPGID = 109,
|
|
||||||
SYS_SETPRIORITY = 141,
|
|
||||||
SYS_SETREGID = 114,
|
|
||||||
SYS_SETRESGID = 119,
|
|
||||||
SYS_SETRESUID = 117,
|
|
||||||
SYS_SETREUID = 113,
|
|
||||||
SYS_SETRLIMIT = 160,
|
|
||||||
SYS_SETSID = 112,
|
|
||||||
SYS_SETSOCKOPT = 54,
|
|
||||||
SYS_SETTIMEOFDAY = 164,
|
|
||||||
SYS_SETUID = 105,
|
|
||||||
SYS_SETXATTR = 188,
|
|
||||||
SYS_SHMAT = 30,
|
|
||||||
SYS_SHMCTL = 31,
|
|
||||||
SYS_SHMDT = 67,
|
|
||||||
SYS_SHMGET = 29,
|
|
||||||
SYS_SHUTDOWN = 48,
|
|
||||||
SYS_SIGALTSTACK = 131,
|
|
||||||
SYS_SIGNALFD = 282,
|
|
||||||
SYS_SIGNALFD4 = 289,
|
|
||||||
SYS_SOCKET = 41,
|
|
||||||
SYS_SOCKETPAIR = 53,
|
|
||||||
SYS_SPLICE = 275,
|
|
||||||
SYS_STAT = 4,
|
|
||||||
SYS_STATFS = 137,
|
|
||||||
SYS_STATX = 332,
|
|
||||||
SYS_SWAPOFF = 168,
|
|
||||||
SYS_SWAPON = 167,
|
|
||||||
SYS_SYMLINK = 88,
|
|
||||||
SYS_SYMLINKAT = 266,
|
|
||||||
SYS_SYNC = 162,
|
|
||||||
SYS_SYNC_FILE_RANGE = 277,
|
|
||||||
SYS_SYNCFS = 306,
|
|
||||||
SYS_SYSFS = 139,
|
|
||||||
SYS_SYSINFO = 99,
|
|
||||||
SYS_SYSLOG = 103,
|
|
||||||
SYS_TEE = 276,
|
|
||||||
SYS_TGKILL = 234,
|
|
||||||
SYS_TIME = 201,
|
|
||||||
SYS_TIMER_CREATE = 222,
|
|
||||||
SYS_TIMER_DELETE = 226,
|
|
||||||
SYS_TIMER_GETOVERRUN = 225,
|
|
||||||
SYS_TIMER_GETTIME = 224,
|
|
||||||
SYS_TIMER_SETTIME = 223,
|
|
||||||
SYS_TIMERFD_CREATE = 283,
|
|
||||||
SYS_TIMERFD_GETTIME = 287,
|
|
||||||
SYS_TIMERFD_SETTIME = 286,
|
|
||||||
SYS_TIMES = 100,
|
|
||||||
SYS_TKILL = 200,
|
|
||||||
SYS_TRUNCATE = 76,
|
|
||||||
SYS_TUXCALL = 184,
|
|
||||||
SYS_UMASK = 95,
|
|
||||||
SYS_UMOUNT2 = 166,
|
|
||||||
SYS_UNAME = 63,
|
|
||||||
SYS_UNLINK = 87,
|
|
||||||
SYS_UNLINKAT = 263,
|
|
||||||
SYS_UNSHARE = 272,
|
|
||||||
SYS_USELIB = 134,
|
|
||||||
SYS_USERFAULTFD = 323,
|
|
||||||
SYS_USTAT = 136,
|
|
||||||
SYS_UTIME = 132,
|
|
||||||
SYS_UTIMENSAT = 280,
|
|
||||||
SYS_UTIMES = 235,
|
|
||||||
SYS_VFORK = 58,
|
|
||||||
SYS_VHANGUP = 153,
|
|
||||||
SYS_VMSPLICE = 278,
|
|
||||||
SYS_VSERVER = 236,
|
|
||||||
SYS_WAIT4 = 61,
|
|
||||||
SYS_WAITID = 247,
|
|
||||||
SYS_WRITE = 1,
|
|
||||||
SYS_WRITEV = 20,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TryFrom<usize> for SysCall {
|
|
||||||
type Error = SystemError;
|
|
||||||
|
|
||||||
fn try_from(value: usize) -> Result<Self, Self::Error> {
|
|
||||||
match <Self as FromPrimitive>::from_usize(value) {
|
|
||||||
Some(p) => Ok(p),
|
|
||||||
None => Err(SystemError::EINVAL),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<SysCall> for usize {
|
|
||||||
fn from(value: SysCall) -> Self {
|
|
||||||
<SysCall as ToPrimitive>::to_usize(&value).unwrap()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -506,7 +506,7 @@ impl DeviceManager {
|
|||||||
}
|
}
|
||||||
let kobject_parent = self.get_device_parent(&device, deivce_parent)?;
|
let kobject_parent = self.get_device_parent(&device, deivce_parent)?;
|
||||||
if let Some(ref kobj) = kobject_parent {
|
if let Some(ref kobj) = kobject_parent {
|
||||||
log::info!("kobject parent: {:?}", kobj.name());
|
log::debug!("kobject parent: {:?}", kobj.name());
|
||||||
}
|
}
|
||||||
if let Some(kobject_parent) = kobject_parent {
|
if let Some(kobject_parent) = kobject_parent {
|
||||||
// debug!(
|
// debug!(
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
// socket definitions
|
// socket definitions
|
||||||
|
mod msg_flag;
|
||||||
mod option;
|
mod option;
|
||||||
mod option_level;
|
mod option_level;
|
||||||
mod msg_flag;
|
|
||||||
mod types;
|
mod types;
|
||||||
|
|
||||||
|
pub use msg_flag::MessageFlag; // Socket message flags MSG_*
|
||||||
pub use option::Options; // Socket options SO_*
|
pub use option::Options; // Socket options SO_*
|
||||||
pub use option_level::OptionLevel; // Socket options level SOL_*
|
pub use option_level::OptionLevel; // Socket options level SOL_*
|
||||||
pub use msg_flag::MessageFlag; // Socket message flags MSG_*
|
|
||||||
pub use types::Type; // Socket types SOCK_*
|
pub use types::Type; // Socket types SOCK_*
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ type EP = EPollEventType;
|
|||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct TcpSocket {
|
pub struct TcpSocket {
|
||||||
inner: RwLock<Option<Inner>>,
|
inner: RwLock<Option<Inner>>,
|
||||||
|
#[allow(dead_code)]
|
||||||
shutdown: Shutdown, // TODO set shutdown status
|
shutdown: Shutdown, // TODO set shutdown status
|
||||||
nonblock: AtomicBool,
|
nonblock: AtomicBool,
|
||||||
wait_queue: WaitQueue,
|
wait_queue: WaitQueue,
|
||||||
|
@ -40,6 +40,7 @@ pub enum Options {
|
|||||||
Repair = 19,
|
Repair = 19,
|
||||||
RepairQueue = 20,
|
RepairQueue = 20,
|
||||||
QueueSeq = 21,
|
QueueSeq = 21,
|
||||||
|
#[allow(clippy::enum_variant_names)]
|
||||||
RepairOptions = 22,
|
RepairOptions = 22,
|
||||||
/// Enable FastOpen on listeners
|
/// Enable FastOpen on listeners
|
||||||
FastOpen = 23,
|
FastOpen = 23,
|
||||||
|
@ -47,10 +47,7 @@ impl IndexNode for Inode {
|
|||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn poll(
|
fn poll(&self, _: &crate::filesystem::vfs::FilePrivateData) -> Result<usize, SystemError> {
|
||||||
&self,
|
|
||||||
_: &crate::filesystem::vfs::FilePrivateData,
|
|
||||||
) -> Result<usize, SystemError> {
|
|
||||||
Ok(self.inner.poll())
|
Ok(self.inner.poll())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ use crate::{
|
|||||||
syscall::Syscall,
|
syscall::Syscall,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::socket::{self, Endpoint, unix::Unix, AddressFamily as AF};
|
use super::socket::{self, unix::Unix, AddressFamily as AF, Endpoint};
|
||||||
|
|
||||||
pub use super::syscall_util::*;
|
pub use super::syscall_util::*;
|
||||||
|
|
||||||
@ -81,7 +81,11 @@ impl Syscall {
|
|||||||
|
|
||||||
// check address family, only support AF_UNIX
|
// check address family, only support AF_UNIX
|
||||||
if address_family != AF::Unix {
|
if address_family != AF::Unix {
|
||||||
log::warn!("only support AF_UNIX, {:?} with protocol {:?} is not supported", address_family, protocol);
|
log::warn!(
|
||||||
|
"only support AF_UNIX, {:?} with protocol {:?} is not supported",
|
||||||
|
address_family,
|
||||||
|
protocol
|
||||||
|
);
|
||||||
return Err(SystemError::EAFNOSUPPORT);
|
return Err(SystemError::EAFNOSUPPORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,8 +144,8 @@ impl Syscall {
|
|||||||
|
|
||||||
let level = socket::OptionLevel::try_from(level as u32)?;
|
let level = socket::OptionLevel::try_from(level as u32)?;
|
||||||
|
|
||||||
use socket::Options as SO;
|
|
||||||
use socket::OptionLevel as SOL;
|
use socket::OptionLevel as SOL;
|
||||||
|
use socket::Options as SO;
|
||||||
if matches!(level, SOL::SOCKET) {
|
if matches!(level, SOL::SOCKET) {
|
||||||
let optname = SO::try_from(optname as u32).map_err(|_| ENOPROTOOPT)?;
|
let optname = SO::try_from(optname as u32).map_err(|_| ENOPROTOOPT)?;
|
||||||
match optname {
|
match optname {
|
||||||
@ -176,8 +180,7 @@ impl Syscall {
|
|||||||
|
|
||||||
if matches!(level, SOL::TCP) {
|
if matches!(level, SOL::TCP) {
|
||||||
use socket::inet::stream::TcpOption;
|
use socket::inet::stream::TcpOption;
|
||||||
let optname =
|
let optname = TcpOption::try_from(optname as i32).map_err(|_| ENOPROTOOPT)?;
|
||||||
TcpOption::try_from(optname as i32).map_err(|_| ENOPROTOOPT)?;
|
|
||||||
match optname {
|
match optname {
|
||||||
TcpOption::Congestion => return Ok(0),
|
TcpOption::Congestion => return Ok(0),
|
||||||
_ => {
|
_ => {
|
||||||
|
@ -35,12 +35,10 @@ use alloc::sync::Arc;
|
|||||||
use core::ffi::CStr;
|
use core::ffi::CStr;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
filesystem::vfs::{
|
filesystem::vfs::{FileType, IndexNode, ROOT_INODE, VFS_MAX_FOLLOW_SYMLINK_TIMES},
|
||||||
FileType, IndexNode, ROOT_INODE, VFS_MAX_FOLLOW_SYMLINK_TIMES,
|
|
||||||
},
|
|
||||||
mm::{verify_area, VirtAddr},
|
mm::{verify_area, VirtAddr},
|
||||||
net::socket::*,
|
net::socket::*,
|
||||||
process::ProcessManager
|
process::ProcessManager,
|
||||||
};
|
};
|
||||||
use smoltcp;
|
use smoltcp;
|
||||||
use system_error::SystemError;
|
use system_error::SystemError;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user