Module Name: src
Committed By: pgoyette
Date: Thu Dec 3 02:51:01 UTC 2015
Modified Files:
src/sys/compat/linux/common: linux_mod.c
src/sys/compat/netbsd32: netbsd32_mod.c
src/sys/kern: files.kern syscalls.master sysv_ipc.c
src/sys/modules: Makefile
src/sys/modules/sysv_ipc: Makefile
Removed Files:
src/sys/compat/common: compat_sysv_mod.c
src/sys/modules/compat_sysv: Makefile
Log Message:
Merge the compat_sysv module into the sysv_ipc module - it should
never have been a separate module in the first place (my bad).
Adjust dependencies as appropriate.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r0 src/sys/compat/common/compat_sysv_mod.c
cvs rdiff -u -r1.5 -r1.6 src/sys/compat/linux/common/linux_mod.c
cvs rdiff -u -r1.12 -r1.13 src/sys/compat/netbsd32/netbsd32_mod.c
cvs rdiff -u -r1.9 -r1.10 src/sys/kern/files.kern
cvs rdiff -u -r1.280 -r1.281 src/sys/kern/syscalls.master
cvs rdiff -u -r1.30 -r1.31 src/sys/kern/sysv_ipc.c
cvs rdiff -u -r1.160 -r1.161 src/sys/modules/Makefile
cvs rdiff -u -r1.2 -r0 src/sys/modules/compat_sysv/Makefile
cvs rdiff -u -r1.1 -r1.2 src/sys/modules/sysv_ipc/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/linux/common/linux_mod.c
diff -u src/sys/compat/linux/common/linux_mod.c:1.5 src/sys/compat/linux/common/linux_mod.c:1.6
--- src/sys/compat/linux/common/linux_mod.c:1.5 Sat Oct 10 04:28:04 2015
+++ src/sys/compat/linux/common/linux_mod.c Thu Dec 3 02:51:01 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_mod.c,v 1.5 2015/10/10 04:28:04 pgoyette Exp $ */
+/* $NetBSD: linux_mod.c,v 1.6 2015/12/03 02:51:01 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.5 2015/10/10 04:28:04 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.6 2015/12/03 02:51:01 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_execfmt.h"
@@ -65,7 +65,7 @@ __KERNEL_RCSID(0, "$NetBSD: linux_mod.c,
# define MD3 ""
#endif
-MODULE(MODULE_CLASS_EXEC, compat_linux, "compat,compat_ossaudio,compat_sysv"
+MODULE(MODULE_CLASS_EXEC, compat_linux, "compat,compat_ossaudio,sysv_ipc"
MD1 MD2 MD3);
static struct execsw linux_execsw[] = {
Index: src/sys/compat/netbsd32/netbsd32_mod.c
diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.12 src/sys/compat/netbsd32/netbsd32_mod.c:1.13
--- src/sys/compat/netbsd32/netbsd32_mod.c:1.12 Tue Dec 1 23:56:43 2015
+++ src/sys/compat/netbsd32/netbsd32_mod.c Thu Dec 3 02:51:01 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_mod.c,v 1.12 2015/12/01 23:56:43 pgoyette Exp $ */
+/* $NetBSD: netbsd32_mod.c,v 1.13 2015/12/03 02:51:01 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.12 2015/12/01 23:56:43 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.13 2015/12/03 02:51:01 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_execfmt.h"
@@ -48,7 +48,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_mod
#include <compat/netbsd32/netbsd32_sysctl.h>
#include <compat/netbsd32/netbsd32_exec.h>
-# define DEPS1 "compat,compat_sysv,ksem"
+# define DEPS1 "compat,sysv_ipc,ksem"
#if defined(EXEC_ELF32)
# define DEPS2 ",exec_elf32"
Index: src/sys/kern/files.kern
diff -u src/sys/kern/files.kern:1.9 src/sys/kern/files.kern:1.10
--- src/sys/kern/files.kern:1.9 Thu Sep 3 01:09:38 2015
+++ src/sys/kern/files.kern Thu Dec 3 02:51:00 2015
@@ -1,4 +1,4 @@
-# $NetBSD: files.kern,v 1.9 2015/09/03 01:09:38 uebayasi Exp $
+# $NetBSD: files.kern,v 1.10 2015/12/03 02:51:00 pgoyette Exp $
#
# kernel sources
@@ -6,8 +6,6 @@
define kern: machdep, uvm
defflag opt_kern.h KERN
file compat/common/compat_mod.c compat_netbsd | compat_netbsd32
-file compat/common/compat_sysv_mod.c (compat_netbsd | compat_netbsd32) &
- (sysvshm | sysvsem | sysvmsg)
file conf/debugsyms.c kern
file conf/param.c kern
file kern/bufq_disksort.c bufq_disksort
Index: src/sys/kern/syscalls.master
diff -u src/sys/kern/syscalls.master:1.280 src/sys/kern/syscalls.master:1.281
--- src/sys/kern/syscalls.master:1.280 Sat Oct 10 03:27:30 2015
+++ src/sys/kern/syscalls.master Thu Dec 3 02:51:00 2015
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.280 2015/10/10 03:27:30 pgoyette Exp $
+ $NetBSD: syscalls.master,v 1.281 2015/12/03 02:51:00 pgoyette Exp $
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
@@ -351,7 +351,7 @@
168 UNIMPL
; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
#if !defined(_LP64)
-169 COMPAT_10 MODULAR compat_sysv \
+169 COMPAT_10 MODULAR sysv_ipc \
{ int|sys||semsys(int which, int a2, int a3, int a4, \
int a5); } osemsys
#else
@@ -359,7 +359,7 @@
#endif
; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
#if !defined(_LP64)
-170 COMPAT_10 MODULAR compat_sysv \
+170 COMPAT_10 MODULAR sysv_ipc \
{ int|sys||msgsys(int which, int a2, int a3, int a4, \
int a5, int a6); } omsgsys
#else
@@ -367,7 +367,7 @@
#endif
; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
#if !defined(_LP64)
-171 COMPAT_10 MODULAR compat_sysv \
+171 COMPAT_10 MODULAR sysv_ipc \
{ int|sys||shmsys(int which, int a2, int a3, int a4); } \
oshmsys
#else
@@ -453,7 +453,7 @@
218 UNIMPL
219 UNIMPL
; System calls 220-300 are reserved for use by NetBSD
-220 COMPAT_14 MODULAR compat_sysv \
+220 COMPAT_14 MODULAR sysv_ipc \
{ int|sys||__semctl(int semid, int semnum, int cmd, \
union __semun *arg); }
221 STD MODULAR sysv_ipc { int|sys||semget(key_t key, int nsems, \
@@ -461,7 +461,7 @@
222 STD MODULAR sysv_ipc { int|sys||semop(int semid, struct sembuf *sops, \
size_t nsops); }
223 STD MODULAR sysv_ipc { int|sys||semconfig(int flag); }
-224 COMPAT_14 MODULAR compat_sysv { int|sys||msgctl(int msqid, int cmd, \
+224 COMPAT_14 MODULAR sysv_ipc { int|sys||msgctl(int msqid, int cmd, \
struct msqid_ds14 *buf); }
225 STD MODULAR sysv_ipc { int|sys||msgget(key_t key, int msgflg); }
226 STD MODULAR sysv_ipc { int|sys||msgsnd(int msqid, const void *msgp, \
@@ -470,7 +470,7 @@
size_t msgsz, long msgtyp, int msgflg); }
228 STD MODULAR sysv_ipc { void *|sys||shmat(int shmid, \
const void *shmaddr, int shmflg); }
-229 COMPAT_14 MODULAR compat_sysv { int|sys||shmctl(int shmid, int cmd, \
+229 COMPAT_14 MODULAR sysv_ipc { int|sys||shmctl(int shmid, int cmd, \
struct shmid_ds14 *buf); }
230 STD MODULAR sysv_ipc { int|sys||shmdt(const void *shmaddr); }
231 STD MODULAR sysv_ipc { int|sys||shmget(key_t key, size_t size, \
@@ -609,12 +609,12 @@
300 COMPAT_20 MODULAR compat \
{ int|sys||fhstatfs(const struct compat_30_fhandle *fhp, \
struct statfs12 *buf); }
-301 COMPAT_50 MODULAR compat_sysv \
+301 COMPAT_50 MODULAR sysv_ipc \
{ int|sys|13|__semctl(int semid, int semnum, int cmd, \
... union __semun *arg); }
-302 COMPAT_50 MODULAR compat_sysv { int|sys|13|msgctl(int msqid, int cmd, \
+302 COMPAT_50 MODULAR sysv_ipc { int|sys|13|msgctl(int msqid, int cmd, \
struct msqid_ds *buf); }
-303 COMPAT_50 MODULAR compat_sysv { int|sys|13|shmctl(int shmid, int cmd, \
+303 COMPAT_50 MODULAR sysv_ipc { int|sys|13|shmctl(int shmid, int cmd, \
struct shmid_ds13 *buf); }
304 STD RUMP { int|sys||lchflags(const char *path, u_long flags); }
305 NOERR RUMP { int|sys||issetugid(void); }
Index: src/sys/kern/sysv_ipc.c
diff -u src/sys/kern/sysv_ipc.c:1.30 src/sys/kern/sysv_ipc.c:1.31
--- src/sys/kern/sysv_ipc.c:1.30 Fri Nov 6 02:26:42 2015
+++ src/sys/kern/sysv_ipc.c Thu Dec 3 02:51:00 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: sysv_ipc.c,v 1.30 2015/11/06 02:26:42 pgoyette Exp $ */
+/* $NetBSD: sysv_ipc.c,v 1.31 2015/12/03 02:51:00 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 2007 The NetBSD Foundation, Inc.
@@ -30,10 +30,11 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.30 2015/11/06 02:26:42 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.31 2015/12/03 02:51:00 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_sysv.h"
+#include "opt_compat_netbsd.h"
#endif
#include <sys/syscall.h>
@@ -61,8 +62,6 @@ __KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v
#include <sys/sysctl.h>
#include <sys/kauth.h>
-static int (*kern_sysvipc50_sysctl_p)(SYSCTLFN_ARGS);
-
/*
* Values in support of System V compatible shared memory. XXX
* (originally located in sys/conf/param.c)
@@ -125,6 +124,10 @@ struct msginfo msginfo = {
};
#endif
+#if defined(COMPAT_50)
+int sysctl_kern_sysvipc50(SYSCTLFN_PROTO);
+#endif
+
MODULE(MODULE_CLASS_EXEC, sysv_ipc, NULL);
SYSCTL_SETUP_PROTO(sysctl_ipc_setup);
@@ -132,24 +135,53 @@ SYSCTL_SETUP_PROTO(sysctl_ipc_setup);
static struct sysctllog *sysctl_sysvipc_clog = NULL;
static const struct syscall_package sysvipc_syscalls[] = {
-#ifdef SYSVSHM
+#if defined(SYSVSHM)
{ SYS___shmctl50, 0, (sy_call_t *)sys___shmctl50 },
{ SYS_shmat, 0, (sy_call_t *)sys_shmat },
{ SYS_shmdt, 0, (sy_call_t *)sys_shmdt },
{ SYS_shmget, 0, (sy_call_t *)sys_shmget },
+#if defined(COMPAT_10) && !defined(_LP64)
+ { SYS_compat_10_oshmsys, 0, (sy_call_t *)compat_10_sys_shmsys },
#endif
-#ifdef SYSVSEM
+#if defined(COMPAT_14)
+ { SYS_compat_14_shmctl, 0, (sy_call_t *)compat_14_sys_shmctl },
+#endif
+#if defined(COMPAT_50)
+ { SYS_compat_50___shmctl13, 0, (sy_call_t *)compat_50_sys___shmctl13 },
+#endif
+#endif /* SYSVSHM */
+
+#if defined(SYSVSEM)
{ SYS_____semctl50, 0, (sy_call_t *)sys_____semctl50 },
{ SYS_semget, 0, (sy_call_t *)sys_semget },
{ SYS_semop, 0, (sy_call_t *)sys_semop },
{ SYS_semconfig, 0, (sy_call_t *)sys_semconfig },
+#if defined(COMPAT_10) && !defined(_LP64)
+ { SYS_compat_10_osemsys, 0, (sy_call_t *)compat_10_sys_semsys },
#endif
-#ifdef SYSVMSG
+#if defined(COMPAT_14)
+ { SYS_compat_14___semctl, 0, (sy_call_t *)compat_14_sys___semctl },
+#endif
+#if defined(COMPAT_50)
+ { SYS_compat_50_____semctl13, 0, (sy_call_t *)compat_50_sys_____semctl13 },
+#endif
+#endif /* SYSVSEM */
+
+#if defined(SYSVMSG)
{ SYS___msgctl50, 0, (sy_call_t *)sys___msgctl50 },
{ SYS_msgget, 0, (sy_call_t *)sys_msgget },
{ SYS_msgsnd, 0, (sy_call_t *)sys_msgsnd },
{ SYS_msgrcv, 0, (sy_call_t *)sys_msgrcv },
+#if defined(COMPAT_10) && !defined(_LP64)
+ { SYS_compat_10_omsgsys, 0, (sy_call_t *)compat_10_sys_msgsys },
#endif
+#if defined(COMPAT_14)
+ { SYS_compat_14_msgctl, 0, (sy_call_t *)compat_14_sys_msgctl },
+#endif
+#if defined(COMPAT_50)
+ { SYS_compat_50___msgctl13, 0, (sy_call_t *)compat_50_sys___msgctl13 },
+#endif
+#endif /* SYSVMSG */
{ 0, 0, NULL }
};
@@ -173,9 +205,6 @@ sysv_ipc_modcmd(modcmd_t cmd, void *arg)
if (error)
sysvipcfini();
- /* Assume no compat sysctl routine for now */
- kern_sysvipc50_sysctl_p = NULL;
-
/*
* Initialize each sub-component, including their
* sysctl data
@@ -243,13 +272,6 @@ sysv_ipc_modcmd(modcmd_t cmd, void *arg)
return error;
}
-void
-sysvipc50_set_compat_sysctl(int (*compat_sysctl)(SYSCTLFN_PROTO))
-{
-
- kern_sysvipc50_sysctl_p = compat_sysctl;
-}
-
static kauth_listener_t sysvipc_listener = NULL;
static int
@@ -367,15 +389,16 @@ sysctl_kern_sysvipc(SYSCTLFN_ARGS)
int i, error, ret;
/*
- * If compat_sysv module has loaded the compat sysctl, call it. If
- * it handles the request completely (either success or error), just
- * return. Otherwise fallthrough to the non-compat_sysv sysctl code.
+ * If present, call the compat sysctl() code. If it handles the request
+ * completely (either success or error), return. Otherwise fallthrough
+ * to the non-compat sysctl code.
*/
- if (kern_sysvipc50_sysctl_p != NULL) {
- error = (*kern_sysvipc50_sysctl_p)(SYSCTLFN_CALL(rnode));
- if (error != EPASSTHROUGH)
- return error;
- }
+
+#if defined(COMPAT_50)
+ error = sysctl_kern_sysvipc50(SYSCTLFN_CALL(rnode));
+ if (error != EPASSTHROUGH)
+ return error;
+#endif
if (namelen != 1)
return EINVAL;
Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.160 src/sys/modules/Makefile:1.161
--- src/sys/modules/Makefile:1.160 Wed Dec 2 00:07:35 2015
+++ src/sys/modules/Makefile Thu Dec 3 02:51:01 2015
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.160 2015/12/02 00:07:35 pgoyette Exp $
+# $NetBSD: Makefile,v 1.161 2015/12/03 02:51:01 pgoyette Exp $
.include <bsd.own.mk>
@@ -20,7 +20,6 @@ SUBDIR+= crypto
SUBDIR+= coda
SUBDIR+= coda5
SUBDIR+= compat
-SUBDIR+= compat_sysv
SUBDIR+= compat_ossaudio
SUBDIR+= coredump
SUBDIR+= dbcool
Index: src/sys/modules/sysv_ipc/Makefile
diff -u src/sys/modules/sysv_ipc/Makefile:1.1 src/sys/modules/sysv_ipc/Makefile:1.2
--- src/sys/modules/sysv_ipc/Makefile:1.1 Wed May 13 02:06:25 2015
+++ src/sys/modules/sysv_ipc/Makefile Thu Dec 3 02:51:01 2015
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2015/05/13 02:06:25 pgoyette Exp $
+# $NetBSD: Makefile,v 1.2 2015/12/03 02:51:01 pgoyette Exp $
.include "../Makefile.inc"
@@ -8,6 +8,20 @@ KMOD= sysv_ipc
CPPFLAGS+= -DSYSVSEM -DSYSVSHM -DSYSVMSG
-SRCS= sysv_ipc.c sysv_msg.c sysv_sem.c sysv_shm.c
+SRCS+= sysv_ipc.c sysv_msg.c sysv_sem.c sysv_shm.c
+
+.PATH: ${S}/compat/common
+
+CPPFLAGS+= -DCOMPAT_10
+CPPFLAGS+= -DCOMPAT_13
+CPPFLAGS+= -DCOMPAT_14
+CPPFLAGS+= -DCOMPAT_50
+
+SRCS+= sysv_msg_14.c sysv_sem_14.c sysv_shm_14.c
+SRCS+= sysv_msg_50.c sysv_sem_50.c sysv_shm_50.c sysv_ipc_50.c
+
+.if ${MACHINE_ARCH} != "alpha"
+SRCS+= kern_ipc_10.c
+.endif
.include <bsd.kmodule.mk>