Module Name: src
Committed By: pgoyette
Date: Sun Feb 3 08:02:25 UTC 2019
Modified Files:
src/sys/dev/raidframe: rf_compat32.c rf_compat50.c rf_compat50_mod.h
rf_compat80.c rf_compat80_mod.h rf_netbsdkintf.c
src/sys/kern: compat_stub.c
src/sys/modules: Makefile
src/sys/modules/raid: Makefile
src/sys/sys: compat_stub.h param.h
Added Files:
src/sys/modules/compat_netbsd32_raid: Makefile
Log Message:
Don't include the raidframe compat code in the main raid module, the
compat code lives in their own compat_raid_xx modules, which will now
be autoloaded if needed.
While here, extract the compat_netbsd32_raid code into its own module,
too.
Welcome to 8.99.34
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/raidframe/rf_compat32.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/raidframe/rf_compat50.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/raidframe/rf_compat50_mod.h \
src/sys/dev/raidframe/rf_compat80_mod.h
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/raidframe/rf_compat80.c
cvs rdiff -u -r1.360 -r1.361 src/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -u -r1.6 -r1.7 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.216 -r1.217 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/compat_netbsd32_raid/Makefile
cvs rdiff -u -r1.2 -r1.3 src/sys/modules/raid/Makefile
cvs rdiff -u -r1.9 -r1.10 src/sys/sys/compat_stub.h
cvs rdiff -u -r1.581 -r1.582 src/sys/sys/param.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/raidframe/rf_compat32.c
diff -u src/sys/dev/raidframe/rf_compat32.c:1.1 src/sys/dev/raidframe/rf_compat32.c:1.2
--- src/sys/dev/raidframe/rf_compat32.c:1.1 Thu Jan 18 00:32:49 2018
+++ src/sys/dev/raidframe/rf_compat32.c Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_compat32.c,v 1.1 2018/01/18 00:32:49 mrg Exp $ */
+/* $NetBSD: rf_compat32.c,v 1.2 2019/02/03 08:02:24 pgoyette Exp $ */
/*
* Copyright (c) 2017 Matthew R. Green
@@ -31,6 +31,8 @@
#include <sys/types.h>
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/module.h>
+#include <sys/compat_stub.h>
#include <dev/raidframe/raidframeio.h>
#include <dev/raidframe/raidframevar.h>
@@ -113,3 +115,37 @@ rf_config_netbsd32(void *data, RF_Config
RF_Free(cfg32, sizeof(RF_Config_t32));
return rv;
}
+
+static void
+raidframe_netbsd32_init(void)
+{
+
+ MODULE_SET_HOOK(raidframe_netbsd32_config_hook, "raid32",
+ rf_config_netbsd32);
+}
+
+static void
+raidframe_netbsd32_fini(void)
+{
+
+ MODULE_UNSET_HOOK(raidframe_netbsd32_config_hook);
+}
+
+MODULE(MODULE_CLASS_EXEC, compat_netbsd32_raid, "raid,compat_netbsd32");
+
+static int
+compat_netbsd32_raid_modcmd(modcmd_t cmd, void *arg)
+{
+
+ switch (cmd) {
+ case MODULE_CMD_INIT:
+ raidframe_netbsd32_init();
+ return 0;
+ case MODULE_CMD_FINI:
+ raidframe_netbsd32_fini();
+ return 0;
+ default:
+ return ENOTTY;
+ }
+}
+
Index: src/sys/dev/raidframe/rf_compat50.c
diff -u src/sys/dev/raidframe/rf_compat50.c:1.6 src/sys/dev/raidframe/rf_compat50.c:1.7
--- src/sys/dev/raidframe/rf_compat50.c:1.6 Thu Jan 31 12:31:50 2019
+++ src/sys/dev/raidframe/rf_compat50.c Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_compat50.c,v 1.6 2019/01/31 12:31:50 christos Exp $ */
+/* $NetBSD: rf_compat50.c,v 1.7 2019/02/03 08:02:24 pgoyette Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -240,14 +240,14 @@ raidframe_ioctl_50(u_long cmd, int initt
return EPASSTHROUGH;
}
-void
+static void
raidframe_50_init(void)
{
MODULE_SET_HOOK(raidframe_ioctl_50_hook, "raid50", raidframe_ioctl_50);
}
-void
+static void
raidframe_50_fini(void)
{
Index: src/sys/dev/raidframe/rf_compat50_mod.h
diff -u src/sys/dev/raidframe/rf_compat50_mod.h:1.3 src/sys/dev/raidframe/rf_compat50_mod.h:1.4
--- src/sys/dev/raidframe/rf_compat50_mod.h:1.3 Thu Jan 31 12:31:50 2019
+++ src/sys/dev/raidframe/rf_compat50_mod.h Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_compat50_mod.h,v 1.3 2019/01/31 12:31:50 christos Exp $ */
+/* $NetBSD: rf_compat50_mod.h,v 1.4 2019/02/03 08:02:24 pgoyette Exp $ */
/*-
@@ -33,9 +33,6 @@
#ifndef _RF_COMPAT50_MOD_H_
#define _RF_COMPAT50_MOD_H_
-void raidframe_50_fini(void);
-void raidframe_50_init(void);
-
int raidframe_ioctl_50(u_long, int, RF_Raid_t *, int, void *, RF_Config_t **);
#endif /* _RF_COMPAT50_MOD_H_ */
Index: src/sys/dev/raidframe/rf_compat80_mod.h
diff -u src/sys/dev/raidframe/rf_compat80_mod.h:1.3 src/sys/dev/raidframe/rf_compat80_mod.h:1.4
--- src/sys/dev/raidframe/rf_compat80_mod.h:1.3 Thu Jan 31 12:31:50 2019
+++ src/sys/dev/raidframe/rf_compat80_mod.h Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_compat80_mod.h,v 1.3 2019/01/31 12:31:50 christos Exp $ */
+/* $NetBSD: rf_compat80_mod.h,v 1.4 2019/02/03 08:02:24 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -38,7 +38,4 @@ struct RF_Config_s;
int raidframe_ioctl_80(u_long, int, struct RF_Raid_s *, int, void *,
struct RF_Config_s **);
-void raidframe_80_init(void);
-void raidframe_80_fini(void);
-
#endif /* _RF_COMPAT80_MOD_H_ */
Index: src/sys/dev/raidframe/rf_compat80.c
diff -u src/sys/dev/raidframe/rf_compat80.c:1.7 src/sys/dev/raidframe/rf_compat80.c:1.8
--- src/sys/dev/raidframe/rf_compat80.c:1.7 Thu Jan 31 12:31:50 2019
+++ src/sys/dev/raidframe/rf_compat80.c Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_compat80.c,v 1.7 2019/01/31 12:31:50 christos Exp $ */
+/* $NetBSD: rf_compat80.c,v 1.8 2019/02/03 08:02:24 pgoyette Exp $ */
/*
* Copyright (c) 2017 Matthew R. Green
@@ -265,14 +265,14 @@ raidframe_ioctl_80(u_long cmd, int initt
return EPASSTHROUGH;
}
-void
+static void
raidframe_80_init(void)
{
MODULE_SET_HOOK(raidframe_ioctl_80_hook, "raid80", raidframe_ioctl_80);
}
-void
+static void
raidframe_80_fini(void)
{
Index: src/sys/dev/raidframe/rf_netbsdkintf.c
diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.360 src/sys/dev/raidframe/rf_netbsdkintf.c:1.361
--- src/sys/dev/raidframe/rf_netbsdkintf.c:1.360 Tue Jan 29 09:28:50 2019
+++ src/sys/dev/raidframe/rf_netbsdkintf.c Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_netbsdkintf.c,v 1.360 2019/01/29 09:28:50 pgoyette Exp $ */
+/* $NetBSD: rf_netbsdkintf.c,v 1.361 2019/02/03 08:02:24 pgoyette Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc.
@@ -101,11 +101,9 @@
***********************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.360 2019/01/29 09:28:50 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.361 2019/02/03 08:02:24 pgoyette Exp $");
#ifdef _KERNEL_OPT
-#include "opt_compat_netbsd.h"
-#include "opt_compat_netbsd32.h"
#include "opt_raid_autoconfig.h"
#endif
@@ -150,11 +148,12 @@ __KERNEL_RCSID(0, "$NetBSD: rf_netbsdkin
#include "rf_parityscan.h"
#include "rf_threadstuff.h"
-#include "rf_compat50.h"
-
#include "rf_compat80.h"
-#ifdef COMPAT_NETBSD32
+#ifdef _LP64
+#ifndef COMPAT_NETBSD32
+#define COMPAT_NETBSD32
+#endif
#include "rf_compat32.h"
#endif
@@ -1113,11 +1112,9 @@ raidioctl(dev_t dev, u_long cmd, void *d
case RAIDFRAME_PARITYMAP_GET_DISABLE:
case RAIDFRAME_PARITYMAP_SET_DISABLE:
case RAIDFRAME_PARITYMAP_SET_PARAMS:
-#ifdef COMPAT_NETBSD32
#ifdef _LP64
case RAIDFRAME_GET_INFO32:
#endif
-#endif
if ((rs->sc_flags & RAIDF_INITED) == 0)
return (ENXIO);
}
@@ -1132,6 +1129,7 @@ raidioctl(dev_t dev, u_long cmd, void *d
* * If compat code returns EAGAIN, we need to finish via config
* * Otherwise the cmd has been handled and we just return
*/
+ module_autoload("compat_raid_50", MODULE_CLASS_EXEC);
MODULE_CALL_HOOK(raidframe_ioctl_50_hook,
(cmd, (rs->sc_flags & RAIDF_INITED),raidPtr, unit, data, &k_cfg),
enosys(), retcode);
@@ -1142,6 +1140,7 @@ raidioctl(dev_t dev, u_long cmd, void *d
else if (retcode != EPASSTHROUGH)
return retcode;
+ module_autoload("compat_raid_80", MODULE_CLASS_EXEC);
MODULE_CALL_HOOK(raidframe_ioctl_80_hook,
(cmd, (rs->sc_flags & RAIDF_INITED),raidPtr, unit, data, &k_cfg),
enosys(), retcode);
@@ -1163,11 +1162,9 @@ raidioctl(dev_t dev, u_long cmd, void *d
/* configure the system */
case RAIDFRAME_CONFIGURE:
-#ifdef COMPAT_NETBSD32
#ifdef _LP64
case RAIDFRAME_CONFIGURE32:
#endif
-#endif
if (raidPtr->valid) {
/* There is a valid RAID set running on this unit! */
@@ -1182,14 +1179,13 @@ raidioctl(dev_t dev, u_long cmd, void *d
if (k_cfg == NULL) {
return (ENOMEM);
}
-#ifdef COMPAT_NETBSD32
#ifdef _LP64
if (cmd == RAIDFRAME_CONFIGURE32 &&
(l->l_proc->p_flag & PK_32) != 0)
- retcode = rf_config_netbsd32(data, k_cfg);
+ MODULE_CALL_HOOK(raidframe_netbsd32_config_hook,
+ (data, k_cfg), enosys(), retcode);
else
#endif
-#endif
{
u_cfg = *((RF_Config_t **) data);
retcode = copyin(u_cfg, k_cfg, sizeof(RF_Config_t));
@@ -1321,7 +1317,7 @@ raidioctl(dev_t dev, u_long cmd, void *d
printf("raid%d: Num Columns: %d\n", raidid, clabel->num_columns);
printf("raid%d: Clean: %d\n", raidid, clabel->clean);
printf("raid%d: Status: %d\n", raidid, clabel->status);
-#endif
+#endif /* DEBUG */
clabel->row = 0;
column = clabel->column;
@@ -1337,7 +1333,7 @@ raidioctl(dev_t dev, u_long cmd, void *d
clabel, sizeof(*clabel));
raidflush_component_label(raidPtr, column);
return (0);
-#endif
+#endif /* 0 */
case RAIDFRAME_INIT_LABELS:
clabel = (RF_ComponentLabel_t *) data;
@@ -1491,24 +1487,21 @@ raidioctl(dev_t dev, u_long cmd, void *d
return(retcode);
case RAIDFRAME_GET_INFO:
-#ifdef COMPAT_NETBSD32
#ifdef _LP64
case RAIDFRAME_GET_INFO32:
-#endif
-#endif
+#endif /* LP64 */
RF_Malloc(d_cfg, sizeof(RF_DeviceConfig_t),
(RF_DeviceConfig_t *));
if (d_cfg == NULL)
return (ENOMEM);
retcode = rf_get_info(raidPtr, d_cfg);
if (retcode == 0) {
-#ifdef COMPAT_NETBSD32
#ifdef _LP64
- if (cmd == RAIDFRAME_GET_INFO32)
+ if (raidframe_netbsd32_config_hook.hooked &&
+ cmd == RAIDFRAME_GET_INFO32)
ucfgp = NETBSD32PTR64(*(netbsd32_pointer_t *)data);
else
-#endif
-#endif
+#endif /* _LP64 */
ucfgp = *(RF_DeviceConfig_t **)data;
retcode = copyout(d_cfg, ucfgp, sizeof(RF_DeviceConfig_t));
}
Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.6 src/sys/kern/compat_stub.c:1.7
--- src/sys/kern/compat_stub.c:1.6 Tue Jan 29 09:28:50 2019
+++ src/sys/kern/compat_stub.c Sun Feb 3 08:02:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.6 2019/01/29 09:28:50 pgoyette Exp $ */
+/* $NetBSD: compat_stub.c,v 1.7 2019/02/03 08:02:24 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -114,6 +114,7 @@ struct ocryptof_50_hook_t ocryptof_50_ho
*/
struct raidframe_ioctl_50_hook_t raidframe_ioctl_50_hook;
struct raidframe_ioctl_80_hook_t raidframe_ioctl_80_hook;
+struct raidframe_netbsd32_config_hook_t raidframe_netbsd32_config_hook;
/*
* puffs compatability
Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.216 src/sys/modules/Makefile:1.217
--- src/sys/modules/Makefile:1.216 Sun Jan 27 02:08:43 2019
+++ src/sys/modules/Makefile Sun Feb 3 08:02:25 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.216 2019/01/27 02:08:43 pgoyette Exp $
+# $NetBSD: Makefile,v 1.217 2019/02/03 08:02:25 pgoyette Exp $
.include <bsd.own.mk>
@@ -290,6 +290,7 @@ SUBDIR+= compat_netbsd32_sysvipc
SUBDIR+= compat_netbsd32_sysvipc_10
SUBDIR+= compat_netbsd32_sysvipc_14
SUBDIR+= compat_netbsd32_sysvipc_50
+SUBDIR+= compat_netbsd32_raid
.endif
.if ${MACHINE_ARCH} == "x86_64"
Index: src/sys/modules/raid/Makefile
diff -u src/sys/modules/raid/Makefile:1.2 src/sys/modules/raid/Makefile:1.3
--- src/sys/modules/raid/Makefile:1.2 Thu Jan 18 00:32:48 2018
+++ src/sys/modules/raid/Makefile Sun Feb 3 08:02:25 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2018/01/18 00:32:48 mrg Exp $
+# $NetBSD: Makefile,v 1.3 2019/02/03 08:02:25 pgoyette Exp $
.include "../Makefile.inc"
@@ -27,8 +27,7 @@ SRCS+= rf_raid4.c rf_raid5.
SRCS+= rf_reconbuffer.c rf_reconmap.c rf_reconstruct.c
SRCS+= rf_reconutil.c rf_revent.c rf_shutdown.c
SRCS+= rf_sstf.c rf_states.c rf_stripelocks.c
-SRCS+= rf_strutils.c rf_utils.c rf_compat50.c
-SRCS+= rf_compat80.c
+SRCS+= rf_strutils.c rf_utils.c
CPPFLAGS+= -DRAID_AUTOCONFIG=1
@@ -42,15 +41,13 @@ CPPFLAGS+= -DRF_INCLUDE_INTERDECLUSTER=1
CPPFLAGS+= -DRF_INCLUDE_PARITY_DECLUSTERING=1
CPPFLAGS+= -DRF_INCLUDE_PARITY_DECLUSTERING_DS=1
-CPPFLAGS+= -DCOMPAT_50
-CPPFLAGS+= -DCOMPAT_80
-
-.if ${MACHINE_CPU} == "sparc64" || \
- ${MACHINE_CPU} == "x86_64" || \
- ${MACHINE_CPU} == "mips64"
-SRCS+= rf_compat32.c
-CPPFLAGS+= -DCOMPAT_NETBSD32
-.endif
+#XXX
+#.if ${MACHINE_CPU} == "sparc64" || \
+# ${MACHINE_CPU} == "x86_64" || \
+# ${MACHINE_CPU} == "mips64"
+#SRCS+= rf_compat32.c
+#CPPFLAGS+= -DCOMPAT_NETBSD32
+#.endif
.include <bsd.kmodule.mk>
Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.9 src/sys/sys/compat_stub.h:1.10
--- src/sys/sys/compat_stub.h:1.9 Thu Jan 31 12:31:50 2019
+++ src/sys/sys/compat_stub.h Sun Feb 3 08:02:25 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.9 2019/01/31 12:31:50 christos Exp $ */
+/* $NetBSD: compat_stub.h,v 1.10 2019/02/03 08:02:25 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -130,10 +130,14 @@ MODULE_HOOK(ocryptof_50_hook, int, (stru
struct RF_Config_s;
struct RF_Raid_s;
+struct RF_Config_s;
MODULE_HOOK(raidframe_ioctl_50_hook, int,
(u_long, int, struct RF_Raid_s *, int, void *, struct RF_Config_s **));
MODULE_HOOK(raidframe_ioctl_80_hook, int,
(u_long, int, struct RF_Raid_s *, int, void *, struct RF_Config_s **));
+MODULE_HOOK(raidframe_netbsd32_config_hook, int,
+ (void *, struct RF_Config_s *));
+
/*
* puffs compatibility
Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.581 src/sys/sys/param.h:1.582
--- src/sys/sys/param.h:1.581 Thu Jan 31 22:07:46 2019
+++ src/sys/sys/param.h Sun Feb 3 08:02:25 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.581 2019/01/31 22:07:46 pgoyette Exp $ */
+/* $NetBSD: param.h,v 1.582 2019/02/03 08:02:25 pgoyette Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -67,7 +67,7 @@
* 2.99.9 (299000900)
*/
-#define __NetBSD_Version__ 899003300 /* NetBSD 8.99.33 */
+#define __NetBSD_Version__ 899003400 /* NetBSD 8.99.34 */
#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
(m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
Added files:
Index: src/sys/modules/compat_netbsd32_raid/Makefile
diff -u /dev/null src/sys/modules/compat_netbsd32_raid/Makefile:1.1
--- /dev/null Sun Feb 3 08:02:25 2019
+++ src/sys/modules/compat_netbsd32_raid/Makefile Sun Feb 3 08:02:25 2019
@@ -0,0 +1,13 @@
+# $NetBSD: Makefile,v 1.1 2019/02/03 08:02:25 pgoyette Exp $
+
+.include "../Makefile.inc"
+
+KMOD= compat_netbsd32_raid
+
+.PATH: ${S}/dev/raidframe
+
+CPPFLAGS+= -DCOMPAT_NETBSD32
+
+SRCS+= rf_compat32.c
+
+.include <bsd.kmodule.mk>