295 lines
6.6 KiB
C
295 lines
6.6 KiB
C
/*
|
|
* Copyright 2008 sempr <iamsempr@gmail.com>
|
|
*
|
|
* This file is part of HUSTOJ.
|
|
*
|
|
* HUSTOJ is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* HUSTOJ is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with HUSTOJ. if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
static char ncalls[512] = {
|
|
1, /*0, restart_syscall*/
|
|
3, /*1, exit*/
|
|
1, /*2, fork*/
|
|
0, /*3, read*/
|
|
0, /*4, write*/
|
|
3, /*5, open*/
|
|
0, /*6, close*/
|
|
0, /*7, waitpid*/
|
|
1, /*8, creat*/
|
|
1, /*9, link*/
|
|
1, /*10, unlink*/
|
|
0, /*11, execve*/
|
|
1, /*12, chdir*/
|
|
0, /*13, time*/
|
|
1, /*14, mknod*/
|
|
1, /*15, chmod*/
|
|
0, /*16, lchown*/
|
|
1, /*17, break*/
|
|
1, /*18, oldstat*/
|
|
0, /*19, lseek*/
|
|
0, /*20, getpid*/
|
|
1, /*21, mount*/
|
|
1, /*22, umount*/
|
|
0, /*23, setuid*/
|
|
0, /*24, getuid*/
|
|
0, /*25, stime*/
|
|
1, /*26, ptrace*/
|
|
0, /*27, alarm*/
|
|
1, /*28, oldfstat*/
|
|
1, /*29, pause*/
|
|
0, /*30, utime*/
|
|
1, /*31, stty*/
|
|
1, /*32, gtty*/
|
|
0, /*33, access*/
|
|
0, /*34, nice*/
|
|
1, /*35, ftime*/
|
|
1, /*36, sync*/
|
|
1, /*37, kill*/
|
|
1, /*38, rename*/
|
|
1, /*39, mkdir*/
|
|
1, /*40, rmdir*/
|
|
1, /*41, dup*/
|
|
1, /*42, pipe*/
|
|
0, /*43, times*/
|
|
1, /*44, prof*/
|
|
0, /*45, brk*/
|
|
0, /*46, setgid*/
|
|
0, /*47, getgid*/
|
|
1, /*48, signal*/
|
|
0, /*49, geteuid*/
|
|
0, /*50, getegid*/
|
|
0, /*51, acct*/
|
|
1, /*52, umount2*/
|
|
1, /*53, lock*/
|
|
0, /*54, ioctl*/
|
|
0, /*55, fcntl*/
|
|
1, /*56, mpx*/
|
|
1, /*57, setpgid*/
|
|
1, /*58, ulimit*/
|
|
1, /*59, oldolduname*/
|
|
1, /*60, umask*/
|
|
1, /*61, chroot*/
|
|
0, /*62, ustat*/
|
|
1, /*63, dup2*/
|
|
0, /*64, getppid*/
|
|
0, /*65, getpgrp*/
|
|
1, /*66, setsid*/
|
|
0, /*67, sigaction*/
|
|
0, /*68, sgetmask*/
|
|
0, /*69, ssetmask*/
|
|
0, /*70, setreuid*/
|
|
0, /*71, setregid*/
|
|
0, /*72, sigsuspend*/
|
|
0, /*73, sigpending*/
|
|
1, /*74, sethostname*/
|
|
1, /*75, setrlimit. It is safe. An unprivilleged process can not increase limit*/
|
|
0, /*76, getrlimit*/
|
|
1, /*77, getrusage*/
|
|
1, /*78, gettimeofday*/
|
|
1, /*79, settimeofday*/
|
|
0, /*80, getgroups*/
|
|
0, /*81, setgroups*/
|
|
1, /*82, select*/
|
|
1, /*83, symlink*/
|
|
1, /*84, oldlstat*/
|
|
0, /*85, readlink*/
|
|
0, /*86, uselib*/
|
|
1, /*87, swapon*/
|
|
1, /*88, reboot*/
|
|
1, /*89, readdir*/
|
|
0, /*90, mmap*/
|
|
0, /*91, munmap*/
|
|
0, /*92, truncate*/
|
|
0, /*93, ftruncate*/
|
|
1, /*94, fchmod*/
|
|
1, /*95, fchown*/
|
|
0, /*96, getpriority*/
|
|
0, /*97, setpriority*/
|
|
1, /*98, profil*/
|
|
1, /*99, statfs*/
|
|
1, /*100, fstatfs*/
|
|
0, /*101, ioperm*/
|
|
0, /*102, socketcall*/
|
|
1, /*103, syslog*/
|
|
1, /*104, setitimer*/
|
|
0, /*105, getitimer*/
|
|
0, /*106, stat*/
|
|
0, /*107, lstat*/
|
|
0, /*108, fstat*/
|
|
0, /*109, olduname*/
|
|
0, /*110, iopl*/
|
|
0, /*111, vhangup*/
|
|
1, /*112, idle*/
|
|
0, /*113, vm86old*/
|
|
1, /*114, wait4*/
|
|
1, /*115, swapoff*/
|
|
0, /*116, sysinfo*/
|
|
1, /*117, ipc*/
|
|
0, /*118, fsync*/
|
|
0, /*119, sigreturn*/
|
|
3, /*120, clone*/
|
|
0, /*121, setdomainname*/
|
|
0, /*122, uname*/
|
|
0, /*123, modify_ldt*/
|
|
0, /*124, adjtimex*/
|
|
0, /*125, mprotect*/
|
|
0, /*126, sigprocmask*/
|
|
1, /*127, create_module*/
|
|
1, /*128, init_module*/
|
|
1, /*129, delete_module*/
|
|
0, /*130, get_kernel_syms*/
|
|
0, /*131, quotactl*/
|
|
0, /*132, getpgid*/
|
|
0, /*133, fchdir*/
|
|
0, /*134, bdflush*/
|
|
0, /*135, sysfs*/
|
|
0, /*136, personality*/
|
|
1, /*137, afs_syscall*/
|
|
0, /*138, setfsuid*/
|
|
0, /*139, setfsgid*/
|
|
0, /*140, llseek*/
|
|
1, /*141, getdents*/
|
|
1, /*142, newselect*/
|
|
0, /*143, flock*/
|
|
0, /*144, msync*/
|
|
0, /*145, readv*/
|
|
0, /*146, writev*/
|
|
0, /*147, getsid*/
|
|
0, /*148, fdatasync*/
|
|
0, /*149, sysctl*/
|
|
0, /*150, mlock*/
|
|
0, /*151, munlock*/
|
|
0, /*152, mlockall*/
|
|
0, /*153, munlockall*/
|
|
0, /*154, sched_setparam*/
|
|
0, /*155, sched_getparam*/
|
|
0, /*156, sched_setscheduler*/
|
|
0, /*157, sched_getscheduler*/
|
|
0, /*158, sched_yield*/
|
|
0, /*159, sched_get_priority_max*/
|
|
0, /*160, sched_get_priority_min*/
|
|
0, /*161, sched_rr_get_interval*/
|
|
1, /*162, nanosleep*/
|
|
0, /*163, mremap*/
|
|
0, /*164, setresuid*/
|
|
0, /*165, getresuid*/
|
|
0, /*166, vm86*/
|
|
1, /*167, query_module*/
|
|
0, /*168, poll*/
|
|
0, /*169, nfsservctl*/
|
|
1, /*170, setresgid*/
|
|
0, /*171, getresgid*/
|
|
0, /*172, prctl*/
|
|
0, /*173, rt_sigreturn*/
|
|
0, /*174, rt_sigaction*/
|
|
0, /*175, rt_sigprocmask*/
|
|
0, /*176, rt_sigpending*/
|
|
0, /*177, rt_sigtimedwait*/
|
|
0, /*178, rt_sigqueueinfo*/
|
|
0, /*179, rt_sigsuspend*/
|
|
1, /*180, pread64*/
|
|
1, /*181, pwrite64*/
|
|
1, /*182, chown*/
|
|
0, /*183, getcwd*/
|
|
0, /*184, capget*/
|
|
0, /*185, capset*/
|
|
0, /*186, sigaltstack*/
|
|
1, /*187, sendfile*/
|
|
1, /*188, getpmsg*/
|
|
1, /*189, putpmsg*/
|
|
1, /*190, vfork*/
|
|
0, /*191, ugetrlimit*/
|
|
0, /*192, mmap2*/
|
|
0, /*193, truncate64*/
|
|
0, /*194, ftruncate64*/
|
|
0, /*195, stat64*/
|
|
0, /*196, lstat64*/
|
|
0, /*197, fstat64*/
|
|
1, /*198, lchown32*/
|
|
0, /*199, getuid32*/
|
|
0, /*200, getgid32*/
|
|
0, /*201, geteuid32*/
|
|
0, /*202, getegid32*/
|
|
1, /*203, setreuid32*/
|
|
1, /*204, setregid32*/
|
|
0, /*205, getgroups32*/
|
|
1, /*206, setgroups32*/
|
|
0, /*207, fchown32*/
|
|
1, /*208, setresuid32*/
|
|
0, /*209, getresuid32*/
|
|
1, /*210, setresgid32*/
|
|
0, /*211, getresgid32*/
|
|
1, /*212, chown32*/
|
|
1, /*213, setuid32*/
|
|
1, /*214, setgid32*/
|
|
1, /*215, setfsuid32*/
|
|
1, /*216, setfsgid32*/
|
|
0, /*217, pivot_root*/
|
|
0, /*218, mincore*/
|
|
0, /*219, madvise*/
|
|
1, /*220, madvise1*/
|
|
0, /*221, getdents64*/
|
|
1, /*222, fcntl64*/
|
|
1, /*223, unused*/
|
|
0, /*224, gettid*/
|
|
0, /*225, readahead*/
|
|
1, /*226, setxattr*/
|
|
1, /*227, lsetxattr*/
|
|
1, /*228, fsetxattr*/
|
|
1, /*229, getxattr*/
|
|
1, /*230, lgetxattr*/
|
|
1, /*231, fgetxattr*/
|
|
1, /*232, listxattr*/
|
|
1, /*233, llistxattr*/
|
|
1, /*234, flistxattr*/
|
|
1, /*235, removexattr*/
|
|
1, /*236, lremovexattr*/
|
|
1, /*237, fremovexattr*/
|
|
0, /*238, tkill*/
|
|
1, /*239, sendfile64*/
|
|
0, /*240, futex*/
|
|
1, /*241, sched_setaffinity*/
|
|
1, /*242, sched_getaffinity*/
|
|
0, /*243, set_thread_area*/
|
|
0, /*244, get_thread_area*/
|
|
1, /*245, io_setup*/
|
|
1, /*246, io_destroy*/
|
|
1, /*247, io_getevents*/
|
|
1, /*248, io_submit*/
|
|
1, /*249, io_cancel*/
|
|
1, /*250, fadvise64*/
|
|
1, /*251, unused*/
|
|
3, /*252, exit_group*/
|
|
1, /*253, lookup_dcookie*/
|
|
1, /*254, epoll_create*/
|
|
1, /*255, epoll_ctl*/
|
|
1, /*256, epoll_wait*/
|
|
1, /*257, remap_file_pages*/
|
|
0, /*258, set_tid_address*/
|
|
1, /*259, timer_create*/
|
|
1, /*260, timer_settime*/
|
|
1, /*261, timer_gettime*/
|
|
1, /*262, timer_getoverrun*/
|
|
1, /*263, timer_delete*/
|
|
1, /*264, clock_settime*/
|
|
1, /*265, clock_gettime*/
|
|
1, /*266, clock_getres*/
|
|
1, /*267, clock_nanosleep*/
|
|
1, /*268, statfs64*/
|
|
1, /*269, fstatfs64*/
|
|
1, /*270, tgkill*/
|
|
1, /*271, utimes*/
|
|
1, /*272, fadvise64_64*/
|
|
1, /*273, vserver*/
|
|
};
|