summaryrefslogtreecommitdiffstats
path: root/lkm
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>1994-10-14 08:45:16 +0000
committersos <sos@FreeBSD.org>1994-10-14 08:45:16 +0000
commiteefd04ea190b36b4739d0d18e89848cff67a1ead (patch)
tree12b4f2fd4275ec4e67e66b300cd4c45a49f74141 /lkm
parentaae398c2844c3188cc26e6d99da71c11ba618eb8 (diff)
downloadFreeBSD-src-eefd04ea190b36b4739d0d18e89848cff67a1ead.zip
FreeBSD-src-eefd04ea190b36b4739d0d18e89848cff67a1ead.tar.gz
LKM module for the iBCS2 emulator
Diffstat (limited to 'lkm')
-rw-r--r--lkm/ibcs2/Makefile11
-rwxr-xr-xlkm/ibcs2/ibcs218
-rw-r--r--lkm/ibcs2/ibcs2.c8
3 files changed, 27 insertions, 10 deletions
diff --git a/lkm/ibcs2/Makefile b/lkm/ibcs2/Makefile
index 451cf80..720d309 100644
--- a/lkm/ibcs2/Makefile
+++ b/lkm/ibcs2/Makefile
@@ -1,14 +1,15 @@
-# $Id: Makefile,v 1.1 1994/09/21 23:27:03 wollman Exp $
+# $Id$
.PATH: ${.CURDIR}/../../sys/i386/ibcs2
KMOD= ibcs2_mod
SRCS= ibcs2.c ibcs2_dummy.c ibcs2_file.c ibcs2_ioctl.c ibcs2_ipc.c \
ibcs2_isc.c ibcs2_misc.c ibcs2_signal.c ibcs2_stats.c \
- ibcs2_sysent.c ibcs2_sysi86.c ibcs2_xenix.c \
- imgact_coff.c #imgact_elf.c imgact_linux.c imgact_xout.c
-
+ ibcs2_sysent.c ibcs2_sysi86.c ibcs2_xenix.c
NOMAN=
VFS_LKM=
-CFLAGS+= -DLKM -I. -DIBCS2
+CFLAGS+= -DLKM -I. -DCOMPAT_IBCS2
+
+.afterinstall:
+ ${INSTALL} -c -o bin -g bin -m 755 ibcs2 /usr/bin
.include <bsd.kmod.mk>
diff --git a/lkm/ibcs2/ibcs2 b/lkm/ibcs2/ibcs2
new file mode 100755
index 0000000..bf65033
--- /dev/null
+++ b/lkm/ibcs2/ibcs2
@@ -0,0 +1,18 @@
+#!/bin/sh
+# $Id$
+if [ $# -le 1 ]; then
+ LOADERS="coff" # elf
+fi
+
+set -e
+
+kernelfile=`sysctl -n kern.bootfile`
+kernelfile=`basename $kernelfile`
+newkernelfile="/tmp/${kernelfile}+ibcs2"
+
+modload -e ibcs2_init -o $newkernelfile -q /lkm/ibcs2_mod.o
+for loader in $LOADERS; do
+ modload -e${loader}_init -o/tmp/ibcs2_${loader}.o -qu \
+ -A${newkernelfile} /lkm/ibcs2_${loader}_mod.o
+done
+set +e
diff --git a/lkm/ibcs2/ibcs2.c b/lkm/ibcs2/ibcs2.c
index 35ae9f9..c58966e 100644
--- a/lkm/ibcs2/ibcs2.c
+++ b/lkm/ibcs2/ibcs2.c
@@ -30,15 +30,13 @@
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/exec.h>
#include <sys/conf.h>
-#include <sys/mount.h>
+#include <sys/exec.h>
+#include <sys/sysent.h>
#include <sys/lkm.h>
#include <sys/errno.h>
-extern const struct execsw coff_execsw;
-
-MOD_EXEC("ibcs2_mod", -1, (struct execsw*)&coff_execsw)
+MOD_MISC("ibcs2_mod")
ibcs2_load(struct lkm_table *lkmtp, int cmd)
{
OpenPOWER on IntegriCloud