/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
#include <errno.h>
#include <stdio.h>
#include <stdarg.h>
#include "xsyscall.h"
/*
* Array of SVR4 system call numbers. The 4.1 numbers are mapped
* to their SVR4/5.0 equivalents before trapping into the kernel.
*/
-1, -1 /*creat*/, -1 /*link*/, -1 /*unlink*/,
-1 /*chmod*/, -1 /*lchown*/, 0, 0,
SYS_lseek, SYS_getpid, 0, 0,
0, SYS_getuid, 0, 0,
0, 0, 0, 0,
0, 0, -1 /*access*/, 0,
0, SYS_profil, 0, 0,
SYS_getgid, 0, 0, 0,
-1 /*reboot*/, 0, -1 /*symlink*/, -1 /*readlink*/,
0, -1/*getpagesize*/,-1, 0,
0, 0, -1, -1,
-1/*gethostname*/,-1/*sethostname*/,-1/*getdtablesize*/,-1/*dup2*/,
-1 /*accept*/, -1 /*getprio*/, -1 /*send*/, -1 /*recv*/,
0, -1 /*bind*/, -1 /*setsockopt*/,-1 /*listen*/,
0, -1 /*sigvec*/, -1 /*sigblock*/, -1 /*sigsetmask*/,
-1 /*sigpause*/, -1 /*sigstack*/, -1 /*recvmsg*/, -1 /*sendmsg*/,
-1 /*fchown*/, -1 /*fchmod*/, -1 /*recvfrom*/, -1 /*setreuid*/,
-1 /*getregid*/, -1 /*rename*/, -1 /*truncate*/, -1 /*ftruncate*/,
-1 /*flock*/, 0, -1 /*sendto*/, -1 /*shutdown*/,
-1 /*socketpair*/, -1 /*mkdir*/, -1 /*rmdir*/, -1 /*utimes*/,
0, 0, 0, -1/*getsockname*/,
-1/*SYS_umount*/, -1 /*async_daemmon*/ -1 /*getfh*/, -1/*getdomain*/,
-1/*setdomain*/, 0, -1 /*quotactl*/, -1 /*exportfs*/,
};
int
{
int ret_val;
switch(sysnum) {
case XSYS_read:
case XSYS_write:
case XSYS_readv:
case XSYS_writev:
case XSYS_open:
if (i2)
else
case XSYS_close:
case XSYS_fcntl:
case XSYS_select:
case XSYS_ioctl :
case XSYS_stat:
case XSYS_lstat:
case XSYS_fstat:
case XSYS_getdents:
case XSYS_kill:
case XSYS_mount:
case XSYS_getrlimit:
case XSYS_setrlimit:
case XSYS_uname:
case XSYS_creat:
case XSYS_unmount:
case XSYS_link:
case XSYS_unlink:
case XSYS_chdir:
case XSYS_mknod:
case XSYS_chmod:
case XSYS_chown:
case XSYS_lseek:
case XSYS_access:
case XSYS_dup:
case XSYS_dup2:
case XSYS_pipe:
case XSYS_symlink:
case XSYS_readlink:
case XSYS_execve:
case XSYS_chroot:
case XSYS_getgroups:
case XSYS_setgroups:
case XSYS_fsync:
case XSYS_gettimeofday:
case XSYS_settimeofday:
case XSYS_rename:
case XSYS_mkdir:
case XSYS_rmdir:
case XSYS_statfs:
case XSYS_fstatfs:
case XSYS_getpagesize:
return (getpagesize());
case XSYS_gethostid:
return (gethostid());
case XSYS_getdtablesize:
return (getdtablesize());
case XSYS_pathconf:
case XSYS_gethostname:
case XSYS_sethostname:
case XSYS_setreuid:
case XSYS_setregid:
case XSYS_getpriority:
case XSYS_setpriority:
case XSYS_sigvec:
case XSYS_sigblock:
case XSYS_sigpending:
return (sigpending(c1));
case XSYS_sigsetmask:
return (sigsetmask(i1));
case XSYS_sigpause:
case XSYS_sigstack:
case XSYS_truncate:
case XSYS_ftruncate:
case XSYS_killpg:
case XSYS_setpgid:
case XSYS_ptrace:
#ifdef S5EMUL
case XSYS_getpgrp:
return (getpgrp());
case XSYS_setpgrp:
return (setpgrp());
#else
case XSYS_getpgrp:
case XSYS_setpgrp:
#endif
case XSYS_getrusage:
case XSYS_setsid:
return (setsid());
case XSYS_flock:
case XSYS_utimes:
case XSYS_poll:
case XSYS_fchmod:
case XSYS_fchown:
case XSYS_fork:
return (fork1());
/* the following system calls are now implemented in
* libsocket */
case XSYS_accept:
case XSYS_bind:
case XSYS_connect:
case XSYS_getsockopt:
case XSYS_getpeername:
case XSYS_getsockname:
case XSYS_getdomainname:
case XSYS_listen:
case XSYS_recv:
case XSYS_recvfrom:
case XSYS_recvmsg:
case XSYS_send:
case XSYS_sendto:
case XSYS_sendmsg:
case XSYS_setdomainname:
case XSYS_setsockopt:
case XSYS_shutdown:
case XSYS_socket:
case XSYS_socketpair:
/* The following can directly go through syscall */
case XSYS_acct:
case XSYS_adjtime:
case XSYS_exit:
case XSYS_fchdir:
case XSYS_fchroot:
case XSYS_getgid:
case XSYS_getitimer:
case XSYS_getmsg:
case XSYS_getpid:
case XSYS_getuid:
case XSYS_mincore:
case XSYS_mprotect:
case XSYS_munmap:
case XSYS_putmsg:
case XSYS_profil:
case XSYS_setitimer:
case XSYS_sync:
case XSYS_umask:
case XSYS_semsys:
case XSYS_msgsys:
case XSYS_shmsys:
case XSYS_mmap:
case XSYS_vhangup:
return (ret_val);
case XSYS_aioread:
case XSYS_aiowrite:
case XSYS_aiocancel:
case XSYS_swapon:
case XSYS_async_daemon:
case XSYS_getfh:
case XSYS_nfssvc:
case XSYS_exportfs:
case XSYS_auditsys:
case XSYS_vpixsys:
case XSYS_quotactl:
case XSYS_getdopt:
case XSYS_setdopt:
case XSYS_ustat:
case XSYS_vtrace:
case XSYS_reboot:
case XSYS_madvise:
case XSYS_vadvise:
case XSYS_getdirentries:
return(-1);
}
return (-1);
}