xref: /titanic_51/usr/src/lib/libbc/libc/sys/common/syscall.c (revision 794f0adb050e571bbfde4d2a19b9f88b852079dd)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5d4188195Sraf  * Common Development and Distribution License (the "License").
6d4188195Sraf  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
205d54f3d8Smuffin  */
21d4188195Sraf 
225d54f3d8Smuffin /*
23*794f0adbSRoger A. Faulkner  * Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
247c478bd9Sstevel@tonic-gate  */
255d54f3d8Smuffin 
267c478bd9Sstevel@tonic-gate #include <errno.h>
277c478bd9Sstevel@tonic-gate #include <stdio.h>
285d54f3d8Smuffin #include <stdarg.h>
297c478bd9Sstevel@tonic-gate #include <sys/syscall.h>
307c478bd9Sstevel@tonic-gate #include "xsyscall.h"
317c478bd9Sstevel@tonic-gate 
327c478bd9Sstevel@tonic-gate /*
337c478bd9Sstevel@tonic-gate  * Array of SVR4 system call numbers. The 4.1 numbers are mapped
347c478bd9Sstevel@tonic-gate  * to their SVR4/5.0 equivalents before trapping into the kernel.
357c478bd9Sstevel@tonic-gate  */
367c478bd9Sstevel@tonic-gate 
378fd04b83SRoger A. Faulkner int syscallnum[190] = {	SYS_syscall,	SYS_exit,	-1 /*fork1*/,
388fd04b83SRoger A. Faulkner 	SYS_read,	SYS_write,	-1 /*open*/,	SYS_close,
39*794f0adbSRoger A. Faulkner         -1,		-1 /*creat*/,	-1 /*link*/,	-1 /*unlink*/,
40*794f0adbSRoger A. Faulkner 	-1,		SYS_chdir,	0,		-1 /*mknod*/,
41*794f0adbSRoger A. Faulkner         -1 /*chmod*/,	-1 /*lchown*/,	0,		0,
427c478bd9Sstevel@tonic-gate         SYS_lseek,	SYS_getpid,	0,		0,
43d4188195Sraf 	0,		SYS_getuid,	0,		0,
447c478bd9Sstevel@tonic-gate 	0,		0,		0,		0,
458fd04b83SRoger A. Faulkner 	0,		0,		-1 /*access*/, 	0,
468fd04b83SRoger A. Faulkner 	0,		SYS_sync,	SYS_kill,	-1 /*stat*/,
478fd04b83SRoger A. Faulkner 	0,		-1 /*lstat*/,	-1 /*dup*/,	SYS_pipe,
487c478bd9Sstevel@tonic-gate 	0,		SYS_profil,	0,		0,
497c478bd9Sstevel@tonic-gate 	SYS_getgid,	0,		0,		0,
507c478bd9Sstevel@tonic-gate 	SYS_acct,	0,		-1,		SYS_ioctl,
51*794f0adbSRoger A. Faulkner 	-1 /*reboot*/,	0,		-1 /*symlink*/,	-1 /*readlink*/,
528fd04b83SRoger A. Faulkner 	SYS_execve,	SYS_umask,	SYS_chroot,	-1 /*fstat*/,
537c478bd9Sstevel@tonic-gate 	0,		-1/*getpagesize*/,-1,		0,
547c478bd9Sstevel@tonic-gate 	0,		0,		-1,		-1,
557c478bd9Sstevel@tonic-gate 	SYS_mmap,	-1,		SYS_munmap,	SYS_mprotect,
567c478bd9Sstevel@tonic-gate 	-1 /*advise*/,	SYS_vhangup,	0,		SYS_mincore,
577c478bd9Sstevel@tonic-gate 	SYS_getgroups,	SYS_setgroups,	-1 /*getpgrp*/,	-1 /*setpgrp*/,
587c478bd9Sstevel@tonic-gate 	SYS_setitimer,	0,		-1 /*swapon*/,	SYS_getitimer,
597c478bd9Sstevel@tonic-gate 	-1/*gethostname*/,-1/*sethostname*/,-1/*getdtablesize*/,-1/*dup2*/,
607c478bd9Sstevel@tonic-gate 	-1/*getdopt*/,	SYS_fcntl,	-1 /*select*/,	-1 /*setdopt*/,
61d4188195Sraf 	SYS_fdsync,	-1 /*setprio*/,	-1 /*socket*/,	-1 /*connect*/,
627c478bd9Sstevel@tonic-gate 	-1 /*accept*/,	-1 /*getprio*/,	-1 /*send*/,	-1 /*recv*/,
637c478bd9Sstevel@tonic-gate 	0,		-1 /*bind*/,	-1 /*setsockopt*/,-1 /*listen*/,
647c478bd9Sstevel@tonic-gate 	0,		-1 /*sigvec*/,	-1 /*sigblock*/, -1 /*sigsetmask*/,
657c478bd9Sstevel@tonic-gate 	-1 /*sigpause*/, -1 /*sigstack*/, -1 /*recvmsg*/, -1 /*sendmsg*/,
667c478bd9Sstevel@tonic-gate 	-1 /*vtrace*/,	SYS_gettimeofday, -1 /*getrusage*/, -1 /*getsockopt*/,
677c478bd9Sstevel@tonic-gate 	0,		SYS_readv,	SYS_writev,	-1 /*settimeofday*/,
68*794f0adbSRoger A. Faulkner 	-1 /*fchown*/,	-1 /*fchmod*/,	-1 /*recvfrom*/, -1 /*setreuid*/,
698fd04b83SRoger A. Faulkner 	-1 /*getregid*/, -1 /*rename*/,	-1 /*truncate*/, -1 /*ftruncate*/,
707c478bd9Sstevel@tonic-gate 	-1 /*flock*/,	0,		-1 /*sendto*/,	-1 /*shutdown*/,
71*794f0adbSRoger A. Faulkner 	-1 /*socketpair*/, -1 /*mkdir*/, -1 /*rmdir*/,	-1 /*utimes*/,
727c478bd9Sstevel@tonic-gate 	0,		SYS_adjtime,	-1 /*getpeername*/,-1 /*gethostid*/,
737c478bd9Sstevel@tonic-gate 	0,		SYS_getrlimit,	SYS_setrlimit,	-1 /*killpg*/,
747c478bd9Sstevel@tonic-gate 	0,		0,		0,		-1/*getsockname*/,
758fd04b83SRoger A. Faulkner 	SYS_getmsg,	SYS_putmsg,	-1 /*poll*/,	0,
767c478bd9Sstevel@tonic-gate 	-1/*nfssvc*/,	-1 /*getdirentries*/, SYS_statfs, SYS_fstatfs,
778fd04b83SRoger A. Faulkner 	-1/*SYS_umount*/, -1 /*async_daemmon*/ -1 /*getfh*/, -1/*getdomain*/,
787c478bd9Sstevel@tonic-gate 	-1/*setdomain*/, 0,		-1 /*quotactl*/, -1 /*exportfs*/,
797c478bd9Sstevel@tonic-gate 	SYS_mount,	-1/*ustat*/,	SYS_semsys,	SYS_msgsys,
807c478bd9Sstevel@tonic-gate 	SYS_shmsys,	-1 /*auditsys*/, -1 /*rfsys*/,	SYS_getdents,
817c478bd9Sstevel@tonic-gate 	-1 /*setsid*/,	SYS_fchdir,	SYS_fchroot,	-1 /*vpixsys*/,
827c478bd9Sstevel@tonic-gate 	-1 /*aioread*/,	-1 /*aiowrite*/, -1 /*aiocancel*/, SYS_sigpending,
837c478bd9Sstevel@tonic-gate 	0,		-1 /*setpgid*/, SYS_pathconf,	SYS_uname,
847c478bd9Sstevel@tonic-gate };
857c478bd9Sstevel@tonic-gate 
865d54f3d8Smuffin int
875d54f3d8Smuffin syscall(int sysnum, ...)
887c478bd9Sstevel@tonic-gate {
897c478bd9Sstevel@tonic-gate 	va_list ap;
907c478bd9Sstevel@tonic-gate 	int i1, i2, i3, i4;
917c478bd9Sstevel@tonic-gate 	char *c1, *c2, *c3, *c4;
925d54f3d8Smuffin 	int	ret_val;
937c478bd9Sstevel@tonic-gate 
945d54f3d8Smuffin 	va_start(ap, sysnum);
957c478bd9Sstevel@tonic-gate 	switch(sysnum) {
967c478bd9Sstevel@tonic-gate 		case XSYS_read:
977c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
987c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
997c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1005d54f3d8Smuffin 			va_end(ap);
1017c478bd9Sstevel@tonic-gate 			return (bc_read(i1, c1, i2));
1027c478bd9Sstevel@tonic-gate 		case XSYS_write:
1037c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1047c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1057c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1065d54f3d8Smuffin 			va_end(ap);
1077c478bd9Sstevel@tonic-gate 			return (bc_write(i1, c1, i2));
1087c478bd9Sstevel@tonic-gate 		case XSYS_readv:
1097c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1107c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1117c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1125d54f3d8Smuffin 			va_end(ap);
1137c478bd9Sstevel@tonic-gate 			return (bc_readv(i1, c1, i2));
1147c478bd9Sstevel@tonic-gate 		case XSYS_writev:
1157c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1167c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1177c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1185d54f3d8Smuffin 			va_end(ap);
1197c478bd9Sstevel@tonic-gate 			return (bc_writev(i1, c1, i2));
1207c478bd9Sstevel@tonic-gate 		case XSYS_open:
1217c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1227c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1237c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1245d54f3d8Smuffin 			va_end(ap);
1257c478bd9Sstevel@tonic-gate 			if (i2)
1267c478bd9Sstevel@tonic-gate 				return (bc_open(c1, i1, i2));
1277c478bd9Sstevel@tonic-gate 			else
1287c478bd9Sstevel@tonic-gate 				return (bc_open(c1, i1));
1297c478bd9Sstevel@tonic-gate 		case XSYS_close:
1307c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1315d54f3d8Smuffin 			va_end(ap);
1327c478bd9Sstevel@tonic-gate 			return (bc_close(i1));
1337c478bd9Sstevel@tonic-gate 		case XSYS_fcntl:
1347c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1357c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1367c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
1375d54f3d8Smuffin 			va_end(ap);
1387c478bd9Sstevel@tonic-gate 			return (bc_fcntl(i1, i2, i3));
1397c478bd9Sstevel@tonic-gate 		case XSYS_select:
1407c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1417c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1427c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
1437c478bd9Sstevel@tonic-gate 			c3 = va_arg(ap, char *);
1447c478bd9Sstevel@tonic-gate 			c4 = va_arg(ap, char *);
1455d54f3d8Smuffin 			va_end(ap);
1467257d1b4Sraf 			return (select(i1, c1, c2, c3, c4));
1477c478bd9Sstevel@tonic-gate 		case XSYS_ioctl :
1487c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1497c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1507c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1515d54f3d8Smuffin 			va_end(ap);
1527c478bd9Sstevel@tonic-gate 			return (bc_ioctl(i1, i2, c1));
1537c478bd9Sstevel@tonic-gate 		case XSYS_stat:
1547c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1557c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
1565d54f3d8Smuffin 			va_end(ap);
1577c478bd9Sstevel@tonic-gate 			return (bc_stat(c1, c2));
1587c478bd9Sstevel@tonic-gate 		case XSYS_lstat:
1597c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1607c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
1615d54f3d8Smuffin 			va_end(ap);
1627c478bd9Sstevel@tonic-gate 			return (bc_lstat(c1, c2));
1637c478bd9Sstevel@tonic-gate 		case XSYS_fstat:
1647c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1657c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1665d54f3d8Smuffin 			va_end(ap);
1677c478bd9Sstevel@tonic-gate 			return (bc_fstat(i1, c1));
1687c478bd9Sstevel@tonic-gate         	case XSYS_getdents:
1697c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1707c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1717c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1725d54f3d8Smuffin 			va_end(ap);
1737c478bd9Sstevel@tonic-gate 			return (bc_getdents(i1, c1, i2));
1747c478bd9Sstevel@tonic-gate 		case XSYS_kill:
1757c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1767c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
1775d54f3d8Smuffin 			va_end(ap);
1787c478bd9Sstevel@tonic-gate 			return (bc_kill(i1, i2));
1797c478bd9Sstevel@tonic-gate 		case XSYS_mount:
1807c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1817c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
1827c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1837c478bd9Sstevel@tonic-gate 			c3 = va_arg(ap, char *);
1845d54f3d8Smuffin 			va_end(ap);
1857c478bd9Sstevel@tonic-gate 			return (mount(c1, c2, i1, c3));
1867c478bd9Sstevel@tonic-gate 		case XSYS_getrlimit:
1877c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1887c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1895d54f3d8Smuffin 			va_end(ap);
1907c478bd9Sstevel@tonic-gate 			return (bc_getrlimit(i1, c1));
1917c478bd9Sstevel@tonic-gate 		case XSYS_setrlimit:
1927c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
1937c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1945d54f3d8Smuffin 			va_end(ap);
1957c478bd9Sstevel@tonic-gate 			return (bc_setrlimit(i1, c1));
1967c478bd9Sstevel@tonic-gate 		case XSYS_uname:
1977c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
1985d54f3d8Smuffin 			va_end(ap);
1997c478bd9Sstevel@tonic-gate 			return (bc_uname(c1));
2007c478bd9Sstevel@tonic-gate 		case XSYS_creat:
2017c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2027c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2035d54f3d8Smuffin 			va_end(ap);
2047c478bd9Sstevel@tonic-gate 			return (creat(c1, i1));
2057c478bd9Sstevel@tonic-gate 		case XSYS_unmount:
2067c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2075d54f3d8Smuffin 			va_end(ap);
2087c478bd9Sstevel@tonic-gate 			return (umount(c1));
2097c478bd9Sstevel@tonic-gate 		case XSYS_link:
2107c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2117c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
2125d54f3d8Smuffin 			va_end(ap);
2137c478bd9Sstevel@tonic-gate 			return (link(c1, c2));
2147c478bd9Sstevel@tonic-gate 		case XSYS_unlink:
2157c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2165d54f3d8Smuffin 			va_end(ap);
2177c478bd9Sstevel@tonic-gate 			return (unlink(c1));
2187c478bd9Sstevel@tonic-gate 		case XSYS_chdir:
2197c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2205d54f3d8Smuffin 			va_end(ap);
2217c478bd9Sstevel@tonic-gate 			return (chdir(c1));
2227c478bd9Sstevel@tonic-gate 		case XSYS_mknod:
2237c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2247c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2257c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
2265d54f3d8Smuffin 			va_end(ap);
2277c478bd9Sstevel@tonic-gate 			return (mknod(c1, i1, i2));
2287c478bd9Sstevel@tonic-gate 		case XSYS_chmod:
2297c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2307c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2315d54f3d8Smuffin 			va_end(ap);
2327c478bd9Sstevel@tonic-gate 			return (chmod(c1, i1));
2337c478bd9Sstevel@tonic-gate 		case XSYS_chown:
2347c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2357c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2367c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
2375d54f3d8Smuffin 			va_end(ap);
2387c478bd9Sstevel@tonic-gate 			return (chown(c1, i1, i2));
2397c478bd9Sstevel@tonic-gate 		case XSYS_lseek:
2407c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2417c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
2427c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
2435d54f3d8Smuffin 			va_end(ap);
2447c478bd9Sstevel@tonic-gate 			return (lseek(i1, i2, i3));
2457c478bd9Sstevel@tonic-gate 		case XSYS_access:
2467c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2477c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2485d54f3d8Smuffin 			va_end(ap);
2497c478bd9Sstevel@tonic-gate 			return (access(c1, i1));
2507c478bd9Sstevel@tonic-gate         	case XSYS_dup:
2517c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2525d54f3d8Smuffin 			va_end(ap);
2537c478bd9Sstevel@tonic-gate 			return (dup(i1));
2547c478bd9Sstevel@tonic-gate 		case XSYS_dup2:
2557c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2567c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
2575d54f3d8Smuffin 			va_end(ap);
2588fd04b83SRoger A. Faulkner 			return (dup2(i1, i2));
2597c478bd9Sstevel@tonic-gate 		case XSYS_pipe:
2607c478bd9Sstevel@tonic-gate 			c1 = (char *)va_arg(ap, int *);
2615d54f3d8Smuffin 			va_end(ap);
2627c478bd9Sstevel@tonic-gate 			return (pipe(c1));
2637c478bd9Sstevel@tonic-gate 		case XSYS_symlink:
2647c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2657c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
2665d54f3d8Smuffin 			va_end(ap);
2677c478bd9Sstevel@tonic-gate 			return (symlink(c1, c2));
2687c478bd9Sstevel@tonic-gate 		case XSYS_readlink:
2697c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2707c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
2717c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2725d54f3d8Smuffin 			va_end(ap);
2737c478bd9Sstevel@tonic-gate 			return (readlink(c1, c2, i1));
2747c478bd9Sstevel@tonic-gate 		case XSYS_execve:
2757c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2767c478bd9Sstevel@tonic-gate 			c2 = (char *)va_arg(ap, char **);
2777c478bd9Sstevel@tonic-gate 			c3 = (char *)va_arg(ap, char **);
2785d54f3d8Smuffin 			va_end(ap);
2797c478bd9Sstevel@tonic-gate 			return (execve(c1, c2, c3));
2807c478bd9Sstevel@tonic-gate 		case XSYS_chroot:
2817c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
2825d54f3d8Smuffin 			va_end(ap);
2837c478bd9Sstevel@tonic-gate 			return (chroot(c1));
2847c478bd9Sstevel@tonic-gate 		case XSYS_getgroups:
2857c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2867c478bd9Sstevel@tonic-gate 			c1 = (char *)va_arg(ap, int *);
2875d54f3d8Smuffin 			va_end(ap);
2887c478bd9Sstevel@tonic-gate 			return (getgroups(i1, c1));
2897c478bd9Sstevel@tonic-gate 		case XSYS_setgroups:
2907c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2917c478bd9Sstevel@tonic-gate 			c1 = (char *)va_arg(ap, int *);
2925d54f3d8Smuffin 			va_end(ap);
2937c478bd9Sstevel@tonic-gate 			return (setgroups(i1, c1));
2947c478bd9Sstevel@tonic-gate 		case XSYS_fsync:
2957c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
2965d54f3d8Smuffin 			va_end(ap);
2977c478bd9Sstevel@tonic-gate 			return (fsync(i1));
2987c478bd9Sstevel@tonic-gate 		case XSYS_gettimeofday:
2997c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3007c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
3015d54f3d8Smuffin 			va_end(ap);
3027c478bd9Sstevel@tonic-gate 			return (gettimeofday(c1, c2));
3037c478bd9Sstevel@tonic-gate 		case XSYS_settimeofday:
3047c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3057c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
3065d54f3d8Smuffin 			va_end(ap);
3077c478bd9Sstevel@tonic-gate 			return (settimeofday(c1, c2));
3087c478bd9Sstevel@tonic-gate 		case XSYS_rename:
3097c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3107c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
3115d54f3d8Smuffin 			va_end(ap);
3127c478bd9Sstevel@tonic-gate 			return (rename(c1, c2));
3137c478bd9Sstevel@tonic-gate 		case XSYS_mkdir:
3147c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3157c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3165d54f3d8Smuffin 			va_end(ap);
3177c478bd9Sstevel@tonic-gate 			return (mkdir(c1, i1));
3187c478bd9Sstevel@tonic-gate 		case XSYS_rmdir:
3197c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3205d54f3d8Smuffin 			va_end(ap);
3217c478bd9Sstevel@tonic-gate 			return (rmdir(c1));
3227c478bd9Sstevel@tonic-gate         	case XSYS_statfs:
3237c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3247c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
3255d54f3d8Smuffin 			va_end(ap);
3267c478bd9Sstevel@tonic-gate 			return (statfs(c1, c2));
3277c478bd9Sstevel@tonic-gate 		case XSYS_fstatfs:
3287c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3297c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3305d54f3d8Smuffin 			va_end(ap);
3317c478bd9Sstevel@tonic-gate 			return (fstatfs(i1, c1));
3327c478bd9Sstevel@tonic-gate 		case XSYS_getpagesize:
3335d54f3d8Smuffin 			va_end(ap);
3347c478bd9Sstevel@tonic-gate 			return (getpagesize());
3357c478bd9Sstevel@tonic-gate 		case XSYS_gethostid:
3365d54f3d8Smuffin 			va_end(ap);
3377c478bd9Sstevel@tonic-gate 			return (gethostid());
3387c478bd9Sstevel@tonic-gate 		case XSYS_getdtablesize:
3395d54f3d8Smuffin 			va_end(ap);
3407c478bd9Sstevel@tonic-gate 			return (getdtablesize());
3417c478bd9Sstevel@tonic-gate 		case XSYS_pathconf:
3427c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3437c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3445d54f3d8Smuffin 			va_end(ap);
3457c478bd9Sstevel@tonic-gate 			return (pathconf(c1, i1));
3467c478bd9Sstevel@tonic-gate 		case XSYS_gethostname:
3477c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3487c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3495d54f3d8Smuffin 			va_end(ap);
3507c478bd9Sstevel@tonic-gate 			return (gethostname(c1, i1));
3517c478bd9Sstevel@tonic-gate 		case XSYS_sethostname:
3527c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3537c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3545d54f3d8Smuffin 			va_end(ap);
3557c478bd9Sstevel@tonic-gate 			return (sethostname(c1, i1));
3567c478bd9Sstevel@tonic-gate 		case XSYS_setreuid:
3577c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3587c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
3595d54f3d8Smuffin 			va_end(ap);
3607c478bd9Sstevel@tonic-gate 			return (setreuid(i1, i2));
3617c478bd9Sstevel@tonic-gate 		case XSYS_setregid:
3627c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3637c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
3645d54f3d8Smuffin 			va_end(ap);
3657c478bd9Sstevel@tonic-gate 			return (setregid(i1, i2));
3667c478bd9Sstevel@tonic-gate 		case XSYS_getpriority:
3677c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3687c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
3695d54f3d8Smuffin 			va_end(ap);
3707c478bd9Sstevel@tonic-gate 			return (getpriority(i1, i2));
3717c478bd9Sstevel@tonic-gate 		case XSYS_setpriority:
3727c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3737c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
3747c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
3755d54f3d8Smuffin 			va_end(ap);
3767c478bd9Sstevel@tonic-gate 			return (setpriority(i1, i2, i3));
3777c478bd9Sstevel@tonic-gate 		case XSYS_sigvec:
3787c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3797c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3807c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
3815d54f3d8Smuffin 			va_end(ap);
3827c478bd9Sstevel@tonic-gate 			return (sigvec(i1, c1, c2));
3837c478bd9Sstevel@tonic-gate 		case XSYS_sigblock:
3847c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3855d54f3d8Smuffin 			va_end(ap);
3867c478bd9Sstevel@tonic-gate 			return (sigblock(i1));
3877c478bd9Sstevel@tonic-gate 		case XSYS_sigpending:
3887c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3895d54f3d8Smuffin 			va_end(ap);
3907c478bd9Sstevel@tonic-gate 			return (sigpending(c1));
3917c478bd9Sstevel@tonic-gate 		case XSYS_sigsetmask:
3927c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
3935d54f3d8Smuffin 			va_end(ap);
3947c478bd9Sstevel@tonic-gate 			return (sigsetmask(i1));
3957c478bd9Sstevel@tonic-gate 		case XSYS_sigpause:
3967c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
3975d54f3d8Smuffin 			va_end(ap);
3987c478bd9Sstevel@tonic-gate 			return (sigpause(c1));
3997c478bd9Sstevel@tonic-gate 		case XSYS_sigstack:
4007c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
4017c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
4025d54f3d8Smuffin 			va_end(ap);
4037c478bd9Sstevel@tonic-gate 			return (sigstack(c1, c2));
4047c478bd9Sstevel@tonic-gate 		case XSYS_truncate:
4057c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
4067c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4075d54f3d8Smuffin 			va_end(ap);
4087c478bd9Sstevel@tonic-gate 			return (truncate(c1, i1));
4097c478bd9Sstevel@tonic-gate 		case XSYS_ftruncate:
4107c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4117c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4125d54f3d8Smuffin 			va_end(ap);
4137c478bd9Sstevel@tonic-gate 			return (ftruncate(i1, i2));
4147c478bd9Sstevel@tonic-gate 		case XSYS_killpg:
4157c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4167c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4175d54f3d8Smuffin 			va_end(ap);
4187c478bd9Sstevel@tonic-gate 			return (killpg(i1, i2));
4197c478bd9Sstevel@tonic-gate 		case XSYS_setpgid:
4207c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4217c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4225d54f3d8Smuffin 			va_end(ap);
4237c478bd9Sstevel@tonic-gate 			return (setpgid(i1, i2));
4247c478bd9Sstevel@tonic-gate 		case XSYS_ptrace:
4257c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4267c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4277c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
4287c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
4297c478bd9Sstevel@tonic-gate 			i4 = va_arg(ap, int);
4307c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
4315d54f3d8Smuffin 			va_end(ap);
4327c478bd9Sstevel@tonic-gate 			return (ptrace(i1, i2, i3, c1, i4, c2));
4337c478bd9Sstevel@tonic-gate #ifdef S5EMUL
4347c478bd9Sstevel@tonic-gate 		case XSYS_getpgrp:
4355d54f3d8Smuffin 			va_end(ap);
4367c478bd9Sstevel@tonic-gate 			return (getpgrp());
4377c478bd9Sstevel@tonic-gate 		case XSYS_setpgrp:
4385d54f3d8Smuffin 			va_end(ap);
4397c478bd9Sstevel@tonic-gate 			return (setpgrp());
4407c478bd9Sstevel@tonic-gate #else
4417c478bd9Sstevel@tonic-gate 		case XSYS_getpgrp:
4427c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4435d54f3d8Smuffin 			va_end(ap);
4447c478bd9Sstevel@tonic-gate 			return (getpgrp(i1));
4457c478bd9Sstevel@tonic-gate 		case XSYS_setpgrp:
4467c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4477c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4485d54f3d8Smuffin 			va_end(ap);
4497c478bd9Sstevel@tonic-gate 			return (setpgrp(i1, i2));
4507c478bd9Sstevel@tonic-gate #endif
4517c478bd9Sstevel@tonic-gate 		case XSYS_getrusage:
4527c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4537c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
4545d54f3d8Smuffin 			va_end(ap);
4557c478bd9Sstevel@tonic-gate 			return (getrusage(i1, c1));
4567c478bd9Sstevel@tonic-gate 		case XSYS_setsid:
4575d54f3d8Smuffin 			va_end(ap);
4587c478bd9Sstevel@tonic-gate 			return (setsid());
4597c478bd9Sstevel@tonic-gate 
4607c478bd9Sstevel@tonic-gate 		case XSYS_flock:
4617c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4627c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
4635d54f3d8Smuffin 			va_end(ap);
4647c478bd9Sstevel@tonic-gate 			return (flock(i1, i2));
4658fd04b83SRoger A. Faulkner 		case XSYS_utimes:
4668fd04b83SRoger A. Faulkner 			c1 = va_arg(ap, char *);
4678fd04b83SRoger A. Faulkner 			c2 = va_arg(ap, char *);
4688fd04b83SRoger A. Faulkner 			va_end(ap);
4698fd04b83SRoger A. Faulkner 			return (utimes(c1, c2));
4708fd04b83SRoger A. Faulkner 		case XSYS_poll:
4718fd04b83SRoger A. Faulkner 			c1 = va_arg(ap, char *);
4728fd04b83SRoger A. Faulkner 			i2 = va_arg(ap, int);
4738fd04b83SRoger A. Faulkner 			i3 = va_arg(ap, int);
4748fd04b83SRoger A. Faulkner 			va_end(ap);
4758fd04b83SRoger A. Faulkner 			return (poll(c1, i2, i3));
476*794f0adbSRoger A. Faulkner 		case XSYS_fchmod:
477*794f0adbSRoger A. Faulkner 			i1 = va_arg(ap, int);
478*794f0adbSRoger A. Faulkner 			i2 = va_arg(ap, int);
479*794f0adbSRoger A. Faulkner 			va_end(ap);
480*794f0adbSRoger A. Faulkner 			return (fchmod(i1, i2));
4818fd04b83SRoger A. Faulkner 		case XSYS_fchown:
4828fd04b83SRoger A. Faulkner 			i1 = va_arg(ap, int);
4838fd04b83SRoger A. Faulkner 			i2 = va_arg(ap, int);
4848fd04b83SRoger A. Faulkner 			i3 = va_arg(ap, int);
4858fd04b83SRoger A. Faulkner 			va_end(ap);
4868fd04b83SRoger A. Faulkner 			return (fchown(i1, i2, i3));
4878fd04b83SRoger A. Faulkner 		case XSYS_fork:
4888fd04b83SRoger A. Faulkner 			va_end(ap);
4898fd04b83SRoger A. Faulkner 			return (fork1());
4907c478bd9Sstevel@tonic-gate 
4917c478bd9Sstevel@tonic-gate 		/* the following system calls are now implemented in
4927c478bd9Sstevel@tonic-gate 		 * libsocket */
4937c478bd9Sstevel@tonic-gate 		case XSYS_accept:
4947c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
4957c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
4967c478bd9Sstevel@tonic-gate 			c2 = (char *)va_arg(ap, int *);
4975d54f3d8Smuffin 			va_end(ap);
4987c478bd9Sstevel@tonic-gate 			return (_accept(i1, c1, c2));
4997c478bd9Sstevel@tonic-gate 		case XSYS_bind:
5007c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5017c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5027c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5035d54f3d8Smuffin 			va_end(ap);
5047c478bd9Sstevel@tonic-gate 			return (_bind(i1, c1, i2));
5057c478bd9Sstevel@tonic-gate 		case XSYS_connect:
5067c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5077c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5087c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5095d54f3d8Smuffin 			va_end(ap);
5107c478bd9Sstevel@tonic-gate 			return (_connect(i1, c1, i2));
5117c478bd9Sstevel@tonic-gate 		case XSYS_getsockopt:
5127c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5137c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5147c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5157c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5167c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
5175d54f3d8Smuffin 			va_end(ap);
5187c478bd9Sstevel@tonic-gate 			return (_getsockopt(i1, i2, i3, c1, c2));
5197c478bd9Sstevel@tonic-gate 		case XSYS_getpeername:
5207c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5217c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5227c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
5235d54f3d8Smuffin 			va_end(ap);
5247c478bd9Sstevel@tonic-gate 			return (_getpeername(i1, c1, c2));
5257c478bd9Sstevel@tonic-gate 		case XSYS_getsockname:
5267c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5277c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5287c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
5295d54f3d8Smuffin 			va_end(ap);
5307c478bd9Sstevel@tonic-gate 			return (_getsockname(i1, c1, c2));
5317c478bd9Sstevel@tonic-gate 		case XSYS_getdomainname:
5327c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5337c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5345d54f3d8Smuffin 			va_end(ap);
5357c478bd9Sstevel@tonic-gate 			return (getdomainname(c1, i1));
5367c478bd9Sstevel@tonic-gate 		case XSYS_listen:
5377c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5387c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5395d54f3d8Smuffin 			va_end(ap);
5407c478bd9Sstevel@tonic-gate 			return (_listen(i1, i2));
5417c478bd9Sstevel@tonic-gate 		case XSYS_recv:
5427c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5437c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5447c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5457c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5465d54f3d8Smuffin 			va_end(ap);
5477c478bd9Sstevel@tonic-gate 			return (_recv(i1, c1, i2, i3));
5487c478bd9Sstevel@tonic-gate 		case XSYS_recvfrom:
5497c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5507c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5517c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5527c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5537c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
5547c478bd9Sstevel@tonic-gate 			c3 = va_arg(ap, char *);
5555d54f3d8Smuffin 			va_end(ap);
5567c478bd9Sstevel@tonic-gate 			return (_recvfrom(i1, c1, i2, i3, c2, c3));
5577c478bd9Sstevel@tonic-gate 		case XSYS_recvmsg:
5587c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5597c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5607c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5615d54f3d8Smuffin 			va_end(ap);
5627c478bd9Sstevel@tonic-gate 			return (_recvmsg(i1, c1, i2));
5637c478bd9Sstevel@tonic-gate 		case XSYS_send:
5647c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5657c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5667c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5677c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5685d54f3d8Smuffin 			va_end(ap);
5697c478bd9Sstevel@tonic-gate 			return (_send(i1, c1, i2, i3));
5707c478bd9Sstevel@tonic-gate 		case XSYS_sendto:
5717c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5727c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5737c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5747c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5757c478bd9Sstevel@tonic-gate 			c2 = va_arg(ap, char *);
5767c478bd9Sstevel@tonic-gate 			i4 = va_arg(ap, int);
5775d54f3d8Smuffin 			va_end(ap);
5787c478bd9Sstevel@tonic-gate 			return (_sendto(i1, c1, i2, i3, c2, i4));
5797c478bd9Sstevel@tonic-gate 		case XSYS_sendmsg:
5807c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5817c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5827c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5835d54f3d8Smuffin 			va_end(ap);
5847c478bd9Sstevel@tonic-gate 			return (_sendmsg(i1, c1, i2));
5857c478bd9Sstevel@tonic-gate 		case XSYS_setdomainname:
5867c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5877c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5885d54f3d8Smuffin 			va_end(ap);
5897c478bd9Sstevel@tonic-gate 			return (setdomainname(c1 ,i1));
5907c478bd9Sstevel@tonic-gate 		case XSYS_setsockopt:
5917c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
5927c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
5937c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
5947c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
5957c478bd9Sstevel@tonic-gate 			i4 = va_arg(ap, int);
5965d54f3d8Smuffin 			va_end(ap);
5977c478bd9Sstevel@tonic-gate 			return (_setsockopt(i1, i2, i3, c1, i4));
5987c478bd9Sstevel@tonic-gate 		case XSYS_shutdown:
5997c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
6007c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
6015d54f3d8Smuffin 			va_end(ap);
6027c478bd9Sstevel@tonic-gate 			return (_shutdown(i1, i2));
6037c478bd9Sstevel@tonic-gate 		case XSYS_socket:
6047c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
6057c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
6067c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
6075d54f3d8Smuffin 			va_end(ap);
6087c478bd9Sstevel@tonic-gate 			return (_socket(i1, i2, i3));
6097c478bd9Sstevel@tonic-gate 		case XSYS_socketpair:
6107c478bd9Sstevel@tonic-gate 			i1 = va_arg(ap, int);
6117c478bd9Sstevel@tonic-gate 			i2 = va_arg(ap, int);
6127c478bd9Sstevel@tonic-gate 			i3 = va_arg(ap, int);
6137c478bd9Sstevel@tonic-gate 			c1 = va_arg(ap, char *);
6145d54f3d8Smuffin 			va_end(ap);
6157c478bd9Sstevel@tonic-gate 			return (_socketpair(i1, i2, i3, c1));
6167c478bd9Sstevel@tonic-gate 
6177c478bd9Sstevel@tonic-gate 
6187c478bd9Sstevel@tonic-gate 		/* The following can directly go through syscall */
6197c478bd9Sstevel@tonic-gate 		case XSYS_acct:
6207c478bd9Sstevel@tonic-gate 		case XSYS_adjtime:
6217c478bd9Sstevel@tonic-gate 		case XSYS_exit:
6227c478bd9Sstevel@tonic-gate 		case XSYS_fchdir:
6237c478bd9Sstevel@tonic-gate 		case XSYS_fchroot:
6247c478bd9Sstevel@tonic-gate 		case XSYS_getgid:
6257c478bd9Sstevel@tonic-gate 		case XSYS_getitimer:
6267c478bd9Sstevel@tonic-gate 		case XSYS_getmsg:
6277c478bd9Sstevel@tonic-gate 		case XSYS_getpid:
6287c478bd9Sstevel@tonic-gate 		case XSYS_getuid:
6297c478bd9Sstevel@tonic-gate 		case XSYS_mincore:
6307c478bd9Sstevel@tonic-gate 		case XSYS_mprotect:
6317c478bd9Sstevel@tonic-gate 		case XSYS_munmap:
6327c478bd9Sstevel@tonic-gate 		case XSYS_putmsg:
6337c478bd9Sstevel@tonic-gate 		case XSYS_profil:
6347c478bd9Sstevel@tonic-gate 		case XSYS_setitimer:
6357c478bd9Sstevel@tonic-gate 		case XSYS_sync:
6367c478bd9Sstevel@tonic-gate 		case XSYS_umask:
6377c478bd9Sstevel@tonic-gate 		case XSYS_semsys:
6387c478bd9Sstevel@tonic-gate 		case XSYS_msgsys:
6397c478bd9Sstevel@tonic-gate 		case XSYS_shmsys:
6407c478bd9Sstevel@tonic-gate 		case XSYS_mmap:
6417c478bd9Sstevel@tonic-gate 		case XSYS_vhangup:
6425d54f3d8Smuffin 			ret_val = _syscall(syscallnum[sysnum], ap);
6435d54f3d8Smuffin 			va_end(ap);
6445d54f3d8Smuffin 			return (ret_val);
6457c478bd9Sstevel@tonic-gate 
6467c478bd9Sstevel@tonic-gate 		case XSYS_aioread:
6477c478bd9Sstevel@tonic-gate 		case XSYS_aiowrite:
6487c478bd9Sstevel@tonic-gate 		case XSYS_aiocancel:
6497c478bd9Sstevel@tonic-gate 		case XSYS_swapon:
6507c478bd9Sstevel@tonic-gate 		case XSYS_async_daemon:
6517c478bd9Sstevel@tonic-gate 		case XSYS_getfh:
6527c478bd9Sstevel@tonic-gate 		case XSYS_nfssvc:
6537c478bd9Sstevel@tonic-gate 		case XSYS_exportfs:
6547c478bd9Sstevel@tonic-gate 		case XSYS_auditsys:
6557c478bd9Sstevel@tonic-gate         	case XSYS_vpixsys:
6567c478bd9Sstevel@tonic-gate 		case XSYS_quotactl:
6577c478bd9Sstevel@tonic-gate 		case XSYS_getdopt:
6587c478bd9Sstevel@tonic-gate 		case XSYS_setdopt:
6597c478bd9Sstevel@tonic-gate 		case XSYS_ustat:
6607c478bd9Sstevel@tonic-gate 		case XSYS_vtrace:
6617c478bd9Sstevel@tonic-gate 		case XSYS_reboot:
6627c478bd9Sstevel@tonic-gate 		case XSYS_madvise:
6637c478bd9Sstevel@tonic-gate 		case XSYS_vadvise:
6647c478bd9Sstevel@tonic-gate 		case XSYS_getdirentries:
6655d54f3d8Smuffin 			va_end(ap);
6667c478bd9Sstevel@tonic-gate 			fprintf(stderr,"system call not supported\n");
6677c478bd9Sstevel@tonic-gate 			return(-1);
6687c478bd9Sstevel@tonic-gate 	}
6695d54f3d8Smuffin 	va_end(ap);
6705d54f3d8Smuffin 	return (-1);
6717c478bd9Sstevel@tonic-gate }
672