diff options
author | swallace <swallace@FreeBSD.org> | 1995-10-10 07:59:30 +0000 |
---|---|---|
committer | swallace <swallace@FreeBSD.org> | 1995-10-10 07:59:30 +0000 |
commit | 20f13c7a7ed3183879431f56c3761a1c7914af8a (patch) | |
tree | 81a969abda60acfc5b1785850773a90772c8c462 /sys/i386/ibcs2/ibcs2_other.c | |
parent | 6c1c648223be1d6caaddff391d1d2946ebc316a2 (diff) | |
download | FreeBSD-src-20f13c7a7ed3183879431f56c3761a1c7914af8a.zip FreeBSD-src-20f13c7a7ed3183879431f56c3761a1c7914af8a.tar.gz |
Remove old files no longer needed.
Add new files created for emulator.
Modify NetBSD import to work with FreeBSD and add new features and
code. The complete emulator is essentially a combination of work/code
implemented by Sean Eric Fagan, Soren Schmidt, Scott Bartram, and myself,
Steven Wallace.
Features of this new emulator system include:
o "clean" code, including strict prototyping.
o Auto-generation of ibcs2 system calls, xenix system calls, isc system
calls. Generation includes system tables, structure definitions,
and prototyping of function calls.
o ibcs2 emulator does not rely on any COMPAT_43 system calls.
o embedded socksys support
o ibcs2 msgsys, semsys, shmsys calls supported if supported in kernel
o alternate /emul/ibcs2 namespace searched first for files in ibcs2
system. Usefull to keep sysv libraries, binaries in /emul/ibcs2.
o many other finer details and functions fixed or implemented.
Diffstat (limited to 'sys/i386/ibcs2/ibcs2_other.c')
-rw-r--r-- | sys/i386/ibcs2/ibcs2_other.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/sys/i386/ibcs2/ibcs2_other.c b/sys/i386/ibcs2/ibcs2_other.c new file mode 100644 index 0000000..aaf32b6 --- /dev/null +++ b/sys/i386/ibcs2/ibcs2_other.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 1995 Steven Wallace + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ + */ + +/* + * IBCS2 compatibility module. + */ + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/sysproto.h> +#include <sys/kernel.h> + +#include <i386/ibcs2/ibcs2_types.h> +#include <i386/ibcs2/ibcs2_signal.h> +#include <i386/ibcs2/ibcs2_util.h> +#include <i386/ibcs2/ibcs2_proto.h> + +#define IBCS2_SECURE_GETLUID 1 +#define IBCS2_SECURE_SETLUID 2 + +int +ibcs2_secure(struct proc *p, struct ibcs2_secure_args *uap, int *retval) +{ + switch (uap->cmd) { + + case IBCS2_SECURE_GETLUID: /* get login uid */ + *retval = p->p_ucred->cr_uid; + return 0; + + case IBCS2_SECURE_SETLUID: /* set login uid */ + return EPERM; + + default: + printf("IBCS2: 'secure' cmd=%d not implemented\n", uap->cmd); + } + + return EINVAL; +} + +int +ibcs2_lseek(struct proc *p, register struct ibcs2_lseek_args *uap, int *retval) +{ + struct lseek_args largs; + off_t lret; + int error; + + largs.fd = uap->fd; + largs.offset = uap->offset; + largs.whence = uap->whence; + error = lseek(p, &largs, (int *)&lret); + *(long *)retval = lret; + return (error); +} |