fix WEIRD STUPID RUST bug: replace consts by literals
This commit is contained in:
parent
168c2ddf0a
commit
6ac31aedd7
@ -1,330 +0,0 @@
|
||||
//! Syscall numbers
|
||||
|
||||
const SYS_read: usize = 0;
|
||||
const SYS_write: usize = 1;
|
||||
const SYS_open: usize = 2;
|
||||
const SYS_close: usize = 3;
|
||||
const SYS_stat: usize = 4;
|
||||
const SYS_fstat: usize = 5;
|
||||
const SYS_lstat: usize = 6;
|
||||
const SYS_poll: usize = 7;
|
||||
const SYS_lseek: usize = 8;
|
||||
const SYS_mmap: usize = 9;
|
||||
const SYS_mprotect: usize = 10;
|
||||
const SYS_munmap: usize = 11;
|
||||
const SYS_brk: usize = 12;
|
||||
const SYS_rt_sigaction: usize = 13;
|
||||
const SYS_rt_sigprocmask: usize = 14;
|
||||
const SYS_rt_sigreturn: usize = 15;
|
||||
const SYS_ioctl: usize = 16;
|
||||
const SYS_pread64: usize = 17;
|
||||
const SYS_pwrite64: usize = 18;
|
||||
const SYS_readv: usize = 19;
|
||||
const SYS_writev: usize = 20;
|
||||
const SYS_access: usize = 21;
|
||||
const SYS_pipe: usize = 22;
|
||||
const SYS_select: usize = 23;
|
||||
const SYS_sched_yield: usize = 24;
|
||||
const SYS_mremap: usize = 25;
|
||||
const SYS_msync: usize = 26;
|
||||
const SYS_mincore: usize = 27;
|
||||
const SYS_madvise: usize = 28;
|
||||
const SYS_shmget: usize = 29;
|
||||
const SYS_shmat: usize = 30;
|
||||
const SYS_shmctl: usize = 31;
|
||||
const SYS_dup: usize = 32;
|
||||
const SYS_dup2: usize = 33;
|
||||
const SYS_pause: usize = 34;
|
||||
const SYS_nanosleep: usize = 35;
|
||||
const SYS_getitimer: usize = 36;
|
||||
const SYS_alarm: usize = 37;
|
||||
const SYS_setitimer: usize = 38;
|
||||
const SYS_getpid: usize = 39;
|
||||
const SYS_sendfile: usize = 40;
|
||||
const SYS_socket: usize = 41;
|
||||
const SYS_connect: usize = 42;
|
||||
const SYS_accept: usize = 43;
|
||||
const SYS_sendto: usize = 44;
|
||||
const SYS_recvfrom: usize = 45;
|
||||
const SYS_sendmsg: usize = 46;
|
||||
const SYS_recvmsg: usize = 47;
|
||||
const SYS_shutdown: usize = 48;
|
||||
const SYS_bind: usize = 49;
|
||||
const SYS_listen: usize = 50;
|
||||
const SYS_getsockname: usize = 51;
|
||||
const SYS_getpeername: usize = 52;
|
||||
const SYS_socketpair: usize = 53;
|
||||
const SYS_setsockopt: usize = 54;
|
||||
const SYS_getsockopt: usize = 55;
|
||||
const SYS_clone: usize = 56;
|
||||
const SYS_fork: usize = 57;
|
||||
const SYS_vfork: usize = 58;
|
||||
const SYS_execve: usize = 59;
|
||||
const SYS_exit: usize = 60;
|
||||
const SYS_wait4: usize = 61;
|
||||
const SYS_kill: usize = 62;
|
||||
const SYS_uname: usize = 63;
|
||||
const SYS_semget: usize = 64;
|
||||
const SYS_semop: usize = 65;
|
||||
const SYS_semctl: usize = 66;
|
||||
const SYS_shmdt: usize = 67;
|
||||
const SYS_msgget: usize = 68;
|
||||
const SYS_msgsnd: usize = 69;
|
||||
const SYS_msgrcv: usize = 70;
|
||||
const SYS_msgctl: usize = 71;
|
||||
const SYS_fcntl: usize = 72;
|
||||
const SYS_flock: usize = 73;
|
||||
const SYS_fsync: usize = 74;
|
||||
const SYS_fdatasync: usize = 75;
|
||||
const SYS_truncate: usize = 76;
|
||||
const SYS_ftruncate: usize = 77;
|
||||
const SYS_getdents: usize = 78;
|
||||
const SYS_getcwd: usize = 79;
|
||||
const SYS_chdir: usize = 80;
|
||||
const SYS_fchdir: usize = 81;
|
||||
const SYS_rename: usize = 82;
|
||||
const SYS_mkdir: usize = 83;
|
||||
const SYS_rmdir: usize = 84;
|
||||
const SYS_creat: usize = 85;
|
||||
const SYS_link: usize = 86;
|
||||
const SYS_unlink: usize = 87;
|
||||
const SYS_symlink: usize = 88;
|
||||
const SYS_readlink: usize = 89;
|
||||
const SYS_chmod: usize = 90;
|
||||
const SYS_fchmod: usize = 91;
|
||||
const SYS_chown: usize = 92;
|
||||
const SYS_fchown: usize = 93;
|
||||
const SYS_lchown: usize = 94;
|
||||
const SYS_umask: usize = 95;
|
||||
const SYS_gettimeofday: usize = 96;
|
||||
const SYS_getrlimit: usize = 97;
|
||||
const SYS_getrusage: usize = 98;
|
||||
const SYS_sysinfo: usize = 99;
|
||||
const SYS_times: usize = 100;
|
||||
const SYS_ptrace: usize = 101;
|
||||
const SYS_getuid: usize = 102;
|
||||
const SYS_syslog: usize = 103;
|
||||
const SYS_getgid: usize = 104;
|
||||
const SYS_setuid: usize = 105;
|
||||
const SYS_setgid: usize = 106;
|
||||
const SYS_geteuid: usize = 107;
|
||||
const SYS_getegid: usize = 108;
|
||||
const SYS_setpgid: usize = 109;
|
||||
const SYS_getppid: usize = 110;
|
||||
const SYS_getpgrp: usize = 111;
|
||||
const SYS_setsid: usize = 112;
|
||||
const SYS_setreuid: usize = 113;
|
||||
const SYS_setregid: usize = 114;
|
||||
const SYS_getgroups: usize = 115;
|
||||
const SYS_setgroups: usize = 116;
|
||||
const SYS_setresuid: usize = 117;
|
||||
const SYS_getresuid: usize = 118;
|
||||
const SYS_setresgid: usize = 119;
|
||||
const SYS_getresgid: usize = 120;
|
||||
const SYS_getpgid: usize = 121;
|
||||
const SYS_setfsuid: usize = 122;
|
||||
const SYS_setfsgid: usize = 123;
|
||||
const SYS_getsid: usize = 124;
|
||||
const SYS_capget: usize = 125;
|
||||
const SYS_capset: usize = 126;
|
||||
const SYS_rt_sigpending: usize = 127;
|
||||
const SYS_rt_sigtimedwait: usize = 128;
|
||||
const SYS_rt_sigqueueinfo: usize = 129;
|
||||
const SYS_rt_sigsuspend: usize = 130;
|
||||
const SYS_sigaltstack: usize = 131;
|
||||
const SYS_utime: usize = 132;
|
||||
const SYS_mknod: usize = 133;
|
||||
const SYS_uselib: usize = 134;
|
||||
const SYS_personality: usize = 135;
|
||||
const SYS_ustat: usize = 136;
|
||||
const SYS_statfs: usize = 137;
|
||||
const SYS_fstatfs: usize = 138;
|
||||
const SYS_sysfs: usize = 139;
|
||||
const SYS_getpriority: usize = 140;
|
||||
const SYS_setpriority: usize = 141;
|
||||
const SYS_sched_setparam: usize = 142;
|
||||
const SYS_sched_getparam: usize = 143;
|
||||
const SYS_sched_setscheduler: usize = 144;
|
||||
const SYS_sched_getscheduler: usize = 145;
|
||||
const SYS_sched_get_priority_max: usize = 146;
|
||||
const SYS_sched_get_priority_min: usize = 147;
|
||||
const SYS_sched_rr_get_interval: usize = 148;
|
||||
const SYS_mlock: usize = 149;
|
||||
const SYS_munlock: usize = 150;
|
||||
const SYS_mlockall: usize = 151;
|
||||
const SYS_munlockall: usize = 152;
|
||||
const SYS_vhangup: usize = 153;
|
||||
const SYS_modify_ldt: usize = 154;
|
||||
const SYS_pivot_root: usize = 155;
|
||||
const SYS__sysctl: usize = 156;
|
||||
const SYS_prctl: usize = 157;
|
||||
const SYS_arch_prctl: usize = 158;
|
||||
const SYS_adjtimex: usize = 159;
|
||||
const SYS_setrlimit: usize = 160;
|
||||
const SYS_chroot: usize = 161;
|
||||
const SYS_sync: usize = 162;
|
||||
const SYS_acct: usize = 163;
|
||||
const SYS_settimeofday: usize = 164;
|
||||
const SYS_mount: usize = 165;
|
||||
const SYS_umount2: usize = 166;
|
||||
const SYS_swapon: usize = 167;
|
||||
const SYS_swapoff: usize = 168;
|
||||
const SYS_reboot: usize = 169;
|
||||
const SYS_sethostname: usize = 170;
|
||||
const SYS_setdomainname: usize = 171;
|
||||
const SYS_iopl: usize = 172;
|
||||
const SYS_ioperm: usize = 173;
|
||||
const SYS_create_module: usize = 174;
|
||||
const SYS_init_module: usize = 175;
|
||||
const SYS_delete_module: usize = 176;
|
||||
const SYS_get_kernel_syms: usize = 177;
|
||||
const SYS_query_module: usize = 178;
|
||||
const SYS_quotactl: usize = 179;
|
||||
const SYS_nfsservctl: usize = 180;
|
||||
const SYS_getpmsg: usize = 181;
|
||||
const SYS_putpmsg: usize = 182;
|
||||
const SYS_afs_syscall: usize = 183;
|
||||
const SYS_tuxcall: usize = 184;
|
||||
const SYS_security: usize = 185;
|
||||
const SYS_gettid: usize = 186;
|
||||
const SYS_readahead: usize = 187;
|
||||
const SYS_setxattr: usize = 188;
|
||||
const SYS_lsetxattr: usize = 189;
|
||||
const SYS_fsetxattr: usize = 190;
|
||||
const SYS_getxattr: usize = 191;
|
||||
const SYS_lgetxattr: usize = 192;
|
||||
const SYS_fgetxattr: usize = 193;
|
||||
const SYS_listxattr: usize = 194;
|
||||
const SYS_llistxattr: usize = 195;
|
||||
const SYS_flistxattr: usize = 196;
|
||||
const SYS_removexattr: usize = 197;
|
||||
const SYS_lremovexattr: usize = 198;
|
||||
const SYS_fremovexattr: usize = 199;
|
||||
const SYS_tkill: usize = 200;
|
||||
const SYS_time: usize = 201;
|
||||
const SYS_futex: usize = 202;
|
||||
const SYS_sched_setaffinity: usize = 203;
|
||||
const SYS_sched_getaffinity: usize = 204;
|
||||
const SYS_set_thread_area: usize = 205;
|
||||
const SYS_io_setup: usize = 206;
|
||||
const SYS_io_destroy: usize = 207;
|
||||
const SYS_io_getevents: usize = 208;
|
||||
const SYS_io_submit: usize = 209;
|
||||
const SYS_io_cancel: usize = 210;
|
||||
const SYS_get_thread_area: usize = 211;
|
||||
const SYS_lookup_dcookie: usize = 212;
|
||||
const SYS_epoll_create: usize = 213;
|
||||
const SYS_epoll_ctl_old: usize = 214;
|
||||
const SYS_epoll_wait_old: usize = 215;
|
||||
const SYS_remap_file_pages: usize = 216;
|
||||
const SYS_getdents64: usize = 217;
|
||||
const SYS_set_tid_address: usize = 218;
|
||||
const SYS_restart_syscall: usize = 219;
|
||||
const SYS_semtimedop: usize = 220;
|
||||
const SYS_fadvise64: usize = 221;
|
||||
const SYS_timer_create: usize = 222;
|
||||
const SYS_timer_settime: usize = 223;
|
||||
const SYS_timer_gettime: usize = 224;
|
||||
const SYS_timer_getoverrun: usize = 225;
|
||||
const SYS_timer_delete: usize = 226;
|
||||
const SYS_clock_settime: usize = 227;
|
||||
const SYS_clock_gettime: usize = 228;
|
||||
const SYS_clock_getres: usize = 229;
|
||||
const SYS_clock_nanosleep: usize = 230;
|
||||
const SYS_exit_group: usize = 231;
|
||||
const SYS_epoll_wait: usize = 232;
|
||||
const SYS_epoll_ctl: usize = 233;
|
||||
const SYS_tgkill: usize = 234;
|
||||
const SYS_utimes: usize = 235;
|
||||
const SYS_vserver: usize = 236;
|
||||
const SYS_mbind: usize = 237;
|
||||
const SYS_set_mempolicy: usize = 238;
|
||||
const SYS_get_mempolicy: usize = 239;
|
||||
const SYS_mq_open: usize = 240;
|
||||
const SYS_mq_unlink: usize = 241;
|
||||
const SYS_mq_timedsend: usize = 242;
|
||||
const SYS_mq_timedreceive: usize = 243;
|
||||
const SYS_mq_notify: usize = 244;
|
||||
const SYS_mq_getsetattr: usize = 245;
|
||||
const SYS_kexec_load: usize = 246;
|
||||
const SYS_waitid: usize = 247;
|
||||
const SYS_add_key: usize = 248;
|
||||
const SYS_request_key: usize = 249;
|
||||
const SYS_keyctl: usize = 250;
|
||||
const SYS_ioprio_set: usize = 251;
|
||||
const SYS_ioprio_get: usize = 252;
|
||||
const SYS_inotify_init: usize = 253;
|
||||
const SYS_inotify_add_watch: usize = 254;
|
||||
const SYS_inotify_rm_watch: usize = 255;
|
||||
const SYS_migrate_pages: usize = 256;
|
||||
const SYS_openat: usize = 257;
|
||||
const SYS_mkdirat: usize = 258;
|
||||
const SYS_mknodat: usize = 259;
|
||||
const SYS_fchownat: usize = 260;
|
||||
const SYS_futimesat: usize = 261;
|
||||
const SYS_newfstatat: usize = 262;
|
||||
const SYS_unlinkat: usize = 263;
|
||||
const SYS_renameat: usize = 264;
|
||||
const SYS_linkat: usize = 265;
|
||||
const SYS_symlinkat: usize = 266;
|
||||
const SYS_readlinkat: usize = 267;
|
||||
const SYS_fchmodat: usize = 268;
|
||||
const SYS_faccessat: usize = 269;
|
||||
const SYS_pselect6: usize = 270;
|
||||
const SYS_ppoll: usize = 271;
|
||||
const SYS_unshare: usize = 272;
|
||||
const SYS_set_robust_list: usize = 273;
|
||||
const SYS_get_robust_list: usize = 274;
|
||||
const SYS_splice: usize = 275;
|
||||
const SYS_tee: usize = 276;
|
||||
const SYS_sync_file_range: usize = 277;
|
||||
const SYS_vmsplice: usize = 278;
|
||||
const SYS_move_pages: usize = 279;
|
||||
const SYS_utimensat: usize = 280;
|
||||
const SYS_epoll_pwait: usize = 281;
|
||||
const SYS_signalfd: usize = 282;
|
||||
const SYS_timerfd_create: usize = 283;
|
||||
const SYS_eventfd: usize = 284;
|
||||
const SYS_fallocate: usize = 285;
|
||||
const SYS_timerfd_settime: usize = 286;
|
||||
const SYS_timerfd_gettime: usize = 287;
|
||||
const SYS_accept4: usize = 288;
|
||||
const SYS_signalfd4: usize = 289;
|
||||
const SYS_eventfd2: usize = 290;
|
||||
const SYS_epoll_create1: usize = 291;
|
||||
const SYS_dup3: usize = 292;
|
||||
const SYS_pipe2: usize = 293;
|
||||
const SYS_inotify_init1: usize = 294;
|
||||
const SYS_preadv: usize = 295;
|
||||
const SYS_pwritev: usize = 296;
|
||||
const SYS_rt_tgsigqueueinfo: usize = 297;
|
||||
const SYS_perf_event_open: usize = 298;
|
||||
const SYS_recvmmsg: usize = 299;
|
||||
const SYS_fanotify_init: usize = 300;
|
||||
const SYS_fanotify_mark: usize = 301;
|
||||
const SYS_prlimit64: usize = 302;
|
||||
const SYS_name_to_handle_at: usize = 303;
|
||||
const SYS_open_by_handle_at: usize = 304;
|
||||
const SYS_clock_adjtime: usize = 305;
|
||||
const SYS_syncfs: usize = 306;
|
||||
const SYS_sendmmsg: usize = 307;
|
||||
const SYS_setns: usize = 308;
|
||||
const SYS_getcpu: usize = 309;
|
||||
const SYS_process_vm_readv: usize = 310;
|
||||
const SYS_process_vm_writev: usize = 311;
|
||||
const SYS_kcmp: usize = 312;
|
||||
const SYS_finit_module: usize = 313;
|
||||
const SYS_sched_setattr: usize = 314;
|
||||
const SYS_sched_getattr: usize = 315;
|
||||
const SYS_renameat2: usize = 316;
|
||||
const SYS_seccomp: usize = 317;
|
||||
const SYS_getrandom: usize = 318;
|
||||
const SYS_memfd_create: usize = 319;
|
||||
const SYS_kexec_file_load: usize = 320;
|
||||
const SYS_bpf: usize = 321;
|
||||
const SYS_execveat: usize = 322;
|
||||
const SYS_userfaultfd: usize = 323;
|
||||
const SYS_membarrier: usize = 324;
|
||||
const SYS_mlock2: usize = 325;
|
||||
|
||||
const SYS_spawn: usize = 360;
|
@ -12,11 +12,8 @@ use {fs, process, std, vm};
|
||||
//use std::libc_fs as fs;
|
||||
//use std::libc_io as io;
|
||||
|
||||
use self::consts::*;
|
||||
use fs::File;
|
||||
|
||||
mod consts;
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn dispatch_syscall(
|
||||
num: u32,
|
||||
@ -29,37 +26,37 @@ pub extern "C" fn dispatch_syscall(
|
||||
) -> isize {
|
||||
debug!("syscall {}: {:#x}, {:#x}, {:#x}, {:#x}, {:#x}, {:#x}", num, arg0, arg1, arg2, arg3, arg4, arg5);
|
||||
let ret = match num {
|
||||
SYS_open => do_open(arg0 as *const i8, arg1 as u32, arg2 as u32),
|
||||
SYS_close => do_close(arg0 as FileDesc),
|
||||
SYS_read => do_read(arg0 as FileDesc, arg1 as *mut u8, arg2 as usize),
|
||||
SYS_write => do_write(arg0 as FileDesc, arg1 as *const u8, arg2 as usize),
|
||||
SYS_readv => do_readv(arg0 as FileDesc, arg1 as *mut iovec_t, arg2 as i32),
|
||||
SYS_writev => do_writev(arg0 as FileDesc, arg1 as *mut iovec_t, arg2 as i32),
|
||||
SYS_stat => do_stat(arg0 as *const i8, arg1 as *mut fs::Stat),
|
||||
SYS_fstat => do_fstat(arg0 as FileDesc, arg1 as *mut fs::Stat),
|
||||
SYS_lstat => do_lstat(arg0 as *const i8, arg1 as *mut fs::Stat),
|
||||
SYS_lseek => do_lseek(arg0 as FileDesc, arg1 as off_t, arg2 as i32),
|
||||
SYS_fsync => do_fsync(arg0 as FileDesc),
|
||||
SYS_fdatasync => do_fdatasync(arg0 as FileDesc),
|
||||
SYS_truncate => do_truncate(arg0 as *const i8, arg1 as usize),
|
||||
SYS_ftruncate => do_ftruncate(arg0 as FileDesc, arg1 as usize),
|
||||
SYS_getdents64 => do_getdents64(arg0 as FileDesc, arg1 as *mut u8, arg2 as usize),
|
||||
SYS_sync => do_sync(),
|
||||
SYS_getcwd => do_getcwd(arg0 as *mut u8, arg1 as usize),
|
||||
002 => do_open(arg0 as *const i8, arg1 as u32, arg2 as u32),
|
||||
003 => do_close(arg0 as FileDesc),
|
||||
000 => do_read(arg0 as FileDesc, arg1 as *mut u8, arg2 as usize),
|
||||
001 => do_write(arg0 as FileDesc, arg1 as *const u8, arg2 as usize),
|
||||
019 => do_readv(arg0 as FileDesc, arg1 as *mut iovec_t, arg2 as i32),
|
||||
020 => do_writev(arg0 as FileDesc, arg1 as *mut iovec_t, arg2 as i32),
|
||||
004 => do_stat(arg0 as *const i8, arg1 as *mut fs::Stat),
|
||||
005 => do_fstat(arg0 as FileDesc, arg1 as *mut fs::Stat),
|
||||
006 => do_lstat(arg0 as *const i8, arg1 as *mut fs::Stat),
|
||||
008 => do_lseek(arg0 as FileDesc, arg1 as off_t, arg2 as i32),
|
||||
074 => do_fsync(arg0 as FileDesc),
|
||||
075 => do_fdatasync(arg0 as FileDesc),
|
||||
076 => do_truncate(arg0 as *const i8, arg1 as usize),
|
||||
077 => do_ftruncate(arg0 as FileDesc, arg1 as usize),
|
||||
217 => do_getdents64(arg0 as FileDesc, arg1 as *mut u8, arg2 as usize),
|
||||
162 => do_sync(),
|
||||
079 => do_getcwd(arg0 as *mut u8, arg1 as usize),
|
||||
|
||||
SYS_exit => do_exit(arg0 as i32),
|
||||
SYS_spawn => do_spawn(
|
||||
060 => do_exit(arg0 as i32),
|
||||
360 => do_spawn(
|
||||
arg0 as *mut u32,
|
||||
arg1 as *mut i8,
|
||||
arg2 as *const *const i8,
|
||||
arg3 as *const *const i8,
|
||||
arg4 as *const FdOp,
|
||||
),
|
||||
SYS_wait4 => do_wait4(arg0 as i32, arg1 as *mut i32),
|
||||
SYS_getpid => do_getpid(),
|
||||
SYS_getppid => do_getppid(),
|
||||
061 => do_wait4(arg0 as i32, arg1 as *mut i32),
|
||||
039 => do_getpid(),
|
||||
110 => do_getppid(),
|
||||
|
||||
SYS_mmap => do_mmap(
|
||||
009 => do_mmap(
|
||||
arg0 as usize,
|
||||
arg1 as usize,
|
||||
arg2 as i32,
|
||||
@ -67,23 +64,23 @@ pub extern "C" fn dispatch_syscall(
|
||||
arg4 as FileDesc,
|
||||
arg5 as off_t,
|
||||
),
|
||||
SYS_munmap => do_munmap(arg0 as usize, arg1 as usize),
|
||||
SYS_mremap => do_mremap(
|
||||
011 => do_munmap(arg0 as usize, arg1 as usize),
|
||||
025 => do_mremap(
|
||||
arg0 as usize,
|
||||
arg1 as usize,
|
||||
arg2 as usize,
|
||||
arg3 as i32,
|
||||
arg4 as usize,
|
||||
),
|
||||
SYS_brk => do_brk(arg0 as usize),
|
||||
012 => do_brk(arg0 as usize),
|
||||
|
||||
SYS_pipe => do_pipe2(arg0 as *mut i32, 0),
|
||||
SYS_pipe2 => do_pipe2(arg0 as *mut i32, arg1 as u32),
|
||||
SYS_dup => do_dup(arg0 as FileDesc),
|
||||
SYS_dup2 => do_dup2(arg0 as FileDesc, arg1 as FileDesc),
|
||||
SYS_dup3 => do_dup3(arg0 as FileDesc, arg1 as FileDesc, arg2 as u32),
|
||||
022 => do_pipe2(arg0 as *mut i32, 0),
|
||||
293 => do_pipe2(arg0 as *mut i32, arg1 as u32),
|
||||
032 => do_dup(arg0 as FileDesc),
|
||||
033 => do_dup2(arg0 as FileDesc, arg1 as FileDesc),
|
||||
292 => do_dup3(arg0 as FileDesc, arg1 as FileDesc, arg2 as u32),
|
||||
|
||||
SYS_gettimeofday => do_gettimeofday(arg0 as *mut timeval_t),
|
||||
096 => do_gettimeofday(arg0 as *mut timeval_t),
|
||||
|
||||
_ => do_unknown(num),
|
||||
};
|
||||
@ -175,11 +172,13 @@ fn do_open(path: *const i8, flags: u32, mode: u32) -> Result<isize, Error> {
|
||||
}
|
||||
|
||||
fn do_close(fd: FileDesc) -> Result<isize, Error> {
|
||||
info!("close: fd: {}", fd);
|
||||
fs::do_close(fd)?;
|
||||
Ok(0)
|
||||
}
|
||||
|
||||
fn do_read(fd: FileDesc, buf: *mut u8, size: usize) -> Result<isize, Error> {
|
||||
info!("write: fd: {}, buf: {:?}, size: {}", fd, buf, size);
|
||||
let safe_buf = {
|
||||
check_mut_array(buf, size)?;
|
||||
unsafe { std::slice::from_raw_parts_mut(buf, size) }
|
||||
@ -189,6 +188,7 @@ fn do_read(fd: FileDesc, buf: *mut u8, size: usize) -> Result<isize, Error> {
|
||||
}
|
||||
|
||||
fn do_write(fd: FileDesc, buf: *const u8, size: usize) -> Result<isize, Error> {
|
||||
info!("write: fd: {}, buf: {:?}, size: {}", fd, buf, size);
|
||||
let safe_buf = {
|
||||
check_array(buf, size)?;
|
||||
unsafe { std::slice::from_raw_parts(buf, size) }
|
||||
@ -402,6 +402,7 @@ fn do_wait4(pid: i32, _exit_status: *mut i32) -> Result<isize, Error> {
|
||||
}
|
||||
|
||||
fn do_getpid() -> Result<isize, Error> {
|
||||
info!("getpid");
|
||||
let pid = process::do_getpid();
|
||||
Ok(pid as isize)
|
||||
}
|
||||
@ -451,6 +452,7 @@ fn do_gettimeofday(tv_u: *mut timeval_t) -> Result<isize, Error> {
|
||||
const MAP_FAILED: *const c_void = ((-1) as i64) as *const c_void;
|
||||
|
||||
fn do_exit(status: i32) -> ! {
|
||||
info!("exit: {}", status);
|
||||
extern "C" {
|
||||
fn do_exit_task() -> !;
|
||||
}
|
||||
@ -461,9 +463,7 @@ fn do_exit(status: i32) -> ! {
|
||||
}
|
||||
|
||||
fn do_unknown(num: u32) -> Result<isize, Error> {
|
||||
if cfg!(debug_assertions) {
|
||||
//println!("[WARNING] Unknown syscall (num = {})", num);
|
||||
}
|
||||
warn!("Unknown syscall (num = {})", num);
|
||||
Err(Error::new(ENOSYS, "Unknown syscall"))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user