summaryrefslogtreecommitdiff
path: root/sys/compat
diff options
context:
space:
mode:
authoretheisen <etheisen@cvs.openbsd.org>1996-04-28 07:38:25 +0000
committeretheisen <etheisen@cvs.openbsd.org>1996-04-28 07:38:25 +0000
commit7758691178f1b7097bb880597f6c0f6041891b9e (patch)
treef106e17225c3143131dafe284ae9daf3599ce04d /sys/compat
parent9b2a42d19d2d7b21308d5f6d6cc8c3155dbb8edd (diff)
Added dummy mount/umount() syscalls for bogus Linux applications that
blindly call mount(). These dummy calls always return EPERM. Fixed uncommented NetBSD tag problem encountered when using makesyscalls.sh.
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linux/files.linux3
-rw-r--r--sys/compat/linux/linux_mount.c60
-rw-r--r--sys/compat/linux/syscalls.master9
3 files changed, 67 insertions, 5 deletions
diff --git a/sys/compat/linux/files.linux b/sys/compat/linux/files.linux
index 7d733b00b22..129d967f3f5 100644
--- a/sys/compat/linux/files.linux
+++ b/sys/compat/linux/files.linux
@@ -1,4 +1,4 @@
-# $OpenBSD: files.linux,v 1.3 1996/04/17 05:23:42 mickey Exp $
+# $OpenBSD: files.linux,v 1.4 1996/04/28 07:38:22 etheisen Exp $
# $NetBSD: files.linux,v 1.4 1996/03/08 04:55:59 mycroft Exp $
#
# Config.new file description for machine-independent Linux compat code.
@@ -19,3 +19,4 @@ file compat/linux/linux_socket.c compat_linux
file compat/linux/linux_syscalls.c compat_linux
file compat/linux/linux_sysent.c compat_linux
file compat/linux/linux_termios.c compat_linux
+file compat/linux/linux_mount.c compat_linux
diff --git a/sys/compat/linux/linux_mount.c b/sys/compat/linux/linux_mount.c
new file mode 100644
index 00000000000..12eca6ebbb1
--- /dev/null
+++ b/sys/compat/linux/linux_mount.c
@@ -0,0 +1,60 @@
+/* $OpenBSD: linux_mount.c,v 1.1 1996/04/28 07:38:23 etheisen Exp $ */
+/*
+ * Copyright (c) 1996 Erik Theisen
+ * 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. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. 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.
+ */
+#include <compat/linux/linux_errno.h>
+
+/*
+ * These are just dummy mount/umount functions
+ * who's purpose is to satisfy brain dead code
+ * that bindly calls mount(). They always
+ * return EPERM.
+ *
+ * You really shouldn't be running code via
+ * emulation that mounts FSs.
+ */
+int
+linux_sys_mount(specialfile, dir, filesystemtype, rwflag, data)
+ char *specialfile;
+ char *dir;
+ char *filesystemtype;
+ long rwflag;
+ void *data;
+{
+ return(LINUX_EPERM);
+}
+
+int
+linux_sys_umount(specialfile)
+ char *specialfile;
+{
+ return(LINUX_EPERM);
+}
+
+
+
+
+
diff --git a/sys/compat/linux/syscalls.master b/sys/compat/linux/syscalls.master
index f5f49826ed6..77884b88db4 100644
--- a/sys/compat/linux/syscalls.master
+++ b/sys/compat/linux/syscalls.master
@@ -1,5 +1,5 @@
- $OpenBSD: syscalls.master,v 1.4 1996/04/17 05:24:13 mickey Exp $
- $NetBSD: syscalls.master,v 1.15 1995/12/18 14:35:10 fvdl Exp $
+ $OpenBSD: syscalls.master,v 1.5 1996/04/28 07:38:24 etheisen Exp $
+; $NetBSD: syscalls.master,v 1.15 1995/12/18 14:35:10 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -68,8 +68,9 @@
19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
int whence); }
20 NOARGS { pid_t sys_getpid(void); }
-21 UNIMPL mount
-22 UNIMPL umount
+21 STD { int linux_sys_mount(char *specialfile, char *dir, \
+ char *filesystemtype, long rwflag, void *data); }
+22 STD { int linux_sys_umount(char *specialfile); }
23 NOARGS { int sys_setuid(uid_t uid); }
24 NOARGS { uid_t sys_getuid(void); }
25 UNIMPL stime