From c272b4d4a80006b6412c7ed60b04694d25740209 Mon Sep 17 00:00:00 2001 From: mrg Date: Wed, 6 Jun 2001 21:38:01 +0000 Subject: [PATCH] build an svr4_32 LKM. create common framework for svr4 & svr4_32 --- sys/lkm/compat/svr4/Makefile | 21 +++++---- sys/lkm/compat/svr4/Makefile.common | 13 ++++++ sys/lkm/compat/svr4_32/Makefile | 25 ++++++++++ sys/lkm/compat/svr4_32/lkminit_emul.c | 66 +++++++++++++++++++++++++++ 4 files changed, 115 insertions(+), 10 deletions(-) create mode 100644 sys/lkm/compat/svr4/Makefile.common create mode 100644 sys/lkm/compat/svr4_32/Makefile create mode 100644 sys/lkm/compat/svr4_32/lkminit_emul.c diff --git a/sys/lkm/compat/svr4/Makefile b/sys/lkm/compat/svr4/Makefile index aaff0d8e768b..fdf0907278a5 100644 --- a/sys/lkm/compat/svr4/Makefile +++ b/sys/lkm/compat/svr4/Makefile @@ -1,15 +1,8 @@ -# $NetBSD: Makefile,v 1.6 2000/12/13 11:18:39 enami Exp $ +# $NetBSD: Makefile,v 1.7 2001/06/06 21:38:01 mrg Exp $ .include "../Makefile.inc" - -.PATH: $S/compat/svr4 $S/arch/${MACHINE_ARCH}/${MACHINE_ARCH} - -CPPFLAGS+= -DCOMPAT_SVR4 -DSYSVSEM -DSYSVMSG -DSYSVSHM -DSVR4_COMPAT_SOLARIS2 -AFLAGS= -x assembler-with-cpp -traditional-cpp -D_LOCORE \ - -I. -I${S} - -MKMAN= no -KMOD= compat_svr4 +USE_32= +.include "../svr4/Makefile.common" # common source files SRCS+= lkminit_emul.c @@ -23,4 +16,12 @@ SRCS+= svr4_machdep.c SRCS+= svr4_sigcode.s svr4_syscall.c .endif +.if ${MACHINE} == "sparc64" +.if ${MACHINE_ARCH} == "sparc64" +SRCS+= svr4_sigcode64.s +.else +SRCS+= svr4_32_sigcode.s +.endif +.endif + .include diff --git a/sys/lkm/compat/svr4/Makefile.common b/sys/lkm/compat/svr4/Makefile.common new file mode 100644 index 000000000000..691ba4698bb6 --- /dev/null +++ b/sys/lkm/compat/svr4/Makefile.common @@ -0,0 +1,13 @@ +# $NetBSD: Makefile.common,v 1.1 2001/06/06 21:38:01 mrg Exp $ + +.include "../Makefile.inc" + +.PATH: $S/compat/svr4 $S/arch/${MACHINE_ARCH}/${MACHINE_ARCH} + +CPPFLAGS+= -DCOMPAT_SVR4${USE_32} -DSYSVSEM -DSYSVMSG -DSYSVSHM \ + -DSVR4_COMPAT_SOLARIS2 +AFLAGS= -x assembler-with-cpp -traditional-cpp -D_LOCORE \ + -I. -I${S} + +MKMAN= no +KMOD= compat_svr4${USE_32} diff --git a/sys/lkm/compat/svr4_32/Makefile b/sys/lkm/compat/svr4_32/Makefile new file mode 100644 index 000000000000..3bb10ab235ad --- /dev/null +++ b/sys/lkm/compat/svr4_32/Makefile @@ -0,0 +1,25 @@ +# $NetBSD: Makefile,v 1.1 2001/06/06 21:38:01 mrg Exp $ + +.include "../Makefile.inc" +USE_32=_32 +.PATH: $S/compat/svr4_32 +.include "../svr4/Makefile.common" + +# common source files +SRCS+= lkminit_emul.c +SRCS+= svr4_32_exec.c svr4_32_fcntl.c svr4_32_ioctl.c svr4_32_ipc.c \ + svr4_32_lwp.c svr4_32_misc.c svr4_32_net.c svr4_32_resource.c \ + svr4_32_signal.c svr4_32_socket.c svr4_32_sockio.c svr4_32_stat.c \ + svr4_32_stream.c svr4_32_syscalls.c svr4_32_sysent.c svr4_32_termios.c \ +# ? +# svr4_errno.c +# svr4_filio.c +# svr4_ttold.c + +.if ${MACHINE} == "sparc64" +SRCS+= svr4_32_sigcode.s svr4_32_machdep.c +CPPFLAGS+= -D_LP64 +AFLAGS+= -D_LP64 +.endif + +.include diff --git a/sys/lkm/compat/svr4_32/lkminit_emul.c b/sys/lkm/compat/svr4_32/lkminit_emul.c new file mode 100644 index 000000000000..64a1f10080be --- /dev/null +++ b/sys/lkm/compat/svr4_32/lkminit_emul.c @@ -0,0 +1,66 @@ +/* $NetBSD: lkminit_emul.c,v 1.1 2001/06/06 21:38:01 mrg Exp $ */ + +/*- + * Copyright (c) 1996 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Michael Graff . + * + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``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 FOUNDATION OR CONTRIBUTORS + * 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 +#include +#include +#include +#include +#include + +extern const struct emul emul_svr4_32; + +int compat_svr4_32_lkmentry __P((struct lkm_table *, int, int)); + +/* + * declare the emulation + */ +MOD_COMPAT("compat_svr4_32", -1, &emul_svr4_32); + +/* + * entry point + */ +int +compat_svr4_32_lkmentry(lkmtp, cmd, ver) + struct lkm_table *lkmtp; + int cmd; + int ver; +{ + + DISPATCH(lkmtp, cmd, ver, lkm_nofunc, lkm_nofunc, lkm_nofunc); +}