diff --git a/lkm/ibcs2/Makefile b/lkm/ibcs2/Makefile index 451cf801390e..720d30943abf 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 diff --git a/lkm/ibcs2/ibcs2 b/lkm/ibcs2/ibcs2 new file mode 100755 index 000000000000..bf65033d1527 --- /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 35ae9f901094..c58966e8a681 100644 --- a/lkm/ibcs2/ibcs2.c +++ b/lkm/ibcs2/ibcs2.c @@ -30,15 +30,13 @@ #include #include -#include #include -#include +#include +#include #include #include -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) { diff --git a/sys/modules/ibcs2/Makefile b/sys/modules/ibcs2/Makefile index 451cf801390e..720d30943abf 100644 --- a/sys/modules/ibcs2/Makefile +++ b/sys/modules/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 diff --git a/sys/modules/ibcs2/ibcs2 b/sys/modules/ibcs2/ibcs2 new file mode 100755 index 000000000000..bf65033d1527 --- /dev/null +++ b/sys/modules/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/sys/modules/ibcs2/ibcs2.c b/sys/modules/ibcs2/ibcs2.c index 35ae9f901094..c58966e8a681 100644 --- a/sys/modules/ibcs2/ibcs2.c +++ b/sys/modules/ibcs2/ibcs2.c @@ -30,15 +30,13 @@ #include #include -#include #include -#include +#include +#include #include #include -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) { diff --git a/sys/modules/ibcs2/ibcs2.sh b/sys/modules/ibcs2/ibcs2.sh new file mode 100644 index 000000000000..bf65033d1527 --- /dev/null +++ b/sys/modules/ibcs2/ibcs2.sh @@ -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