Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/pgoyette-compat]: src Separate the compat_50 and compat_80 dispatching c...



details:   https://anonhg.NetBSD.org/src/rev/6bcafc1736e0
branches:  pgoyette-compat
changeset: 830494:6bcafc1736e0
user:      pgoyette <pgoyette%NetBSD.org@localhost>
date:      Sat Mar 24 01:59:15 2018 +0000

description:
Separate the compat_50 and compat_80 dispatching code from the main
body of raidframe, and place into the appropriate compat modules.

Enable building of the compat_80 module.

diffstat:

 distrib/sets/lists/modules/mi      |   4 +-
 sys/compat/common/Makefile.sysio   |  10 ++-
 sys/compat/common/compat_80_mod.c  |   6 +-
 sys/compat/common/files.common     |   3 +-
 sys/dev/raidframe/rf_compat50.c    |  39 +++++++++++++++-
 sys/dev/raidframe/rf_compat50.h    |   7 ++-
 sys/dev/raidframe/rf_compat80.c    |  62 ++++++++++++++++++++++++-
 sys/dev/raidframe/rf_compat80.h    |   7 ++-
 sys/dev/raidframe/rf_netbsdkintf.c |  93 +++++++++++++++++--------------------
 sys/kern/compat_stub.c             |  20 +++++--
 sys/modules/Makefile               |   8 +-
 sys/modules/compat_50/Makefile     |   6 ++-
 sys/modules/compat_80/Makefile     |   8 ++-
 sys/sys/compat_stub.h              |  18 ++++++-
 14 files changed, 209 insertions(+), 82 deletions(-)

diffs (truncated from 546 to 300 lines):

diff -r a9f30568a3e4 -r 6bcafc1736e0 distrib/sets/lists/modules/mi
--- a/distrib/sets/lists/modules/mi     Fri Mar 23 09:41:10 2018 +0000
+++ b/distrib/sets/lists/modules/mi     Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.114.2.5 2018/03/19 21:55:17 pgoyette Exp $
+# $NetBSD: mi,v 1.114.2.6 2018/03/24 01:59:15 pgoyette Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -74,6 +74,8 @@
 ./@MODULEDIR@/compat_60/compat_60.kmod         base-kernel-modules     kmod
 ./@MODULEDIR@/compat_70                                base-kernel-modules     kmod
 ./@MODULEDIR@/compat_70/compat_70.kmod         base-kernel-modules     kmod
+./@MODULEDIR@/compat_80                                base-kernel-modules     kmod
+./@MODULEDIR@/compat_80/compat_80.kmod         base-kernel-modules     kmod
 ./@MODULEDIR@/compat_ossaudio                  base-kernel-modules     kmod
 ./@MODULEDIR@/compat_ossaudio/compat_ossaudio.kmod     base-kernel-modules     kmod
 ./@MODULEDIR@/compat_sysv                      base-kernel-modules     kmod
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/compat/common/Makefile.sysio
--- a/sys/compat/common/Makefile.sysio  Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/compat/common/Makefile.sysio  Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.sysio,v 1.7.18.9 2018/03/23 09:41:10 pgoyette Exp $
+#      $NetBSD: Makefile.sysio,v 1.7.18.10 2018/03/24 01:59:15 pgoyette Exp $
 
 # Sources for syscall and ioctl compatibility across the versions.
 
@@ -44,10 +44,12 @@
 # Compatibility code for NetBSD 7.0
 SRCS+= rtsock_70.c uipc_usrreq_70.c
 
-# Compatability code for NetBSD 8.0
-#SRCS+=        raidframe80.c
-
 # More compatibility code for NetBSD 5.0
 .PATH: ${S}/opencrypto
 SRCS+= ocryptodev.c
 
+# Raidframe compatibility code for NetBSD 5.0 and 8.0
+.PATH: ${S}/dev/raidframe
+SRCS+= rf_compat50.c
+SRCS+= rf_compat80.c
+
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/compat/common/compat_80_mod.c
--- a/sys/compat/common/compat_80_mod.c Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/compat/common/compat_80_mod.c Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: compat_80_mod.c,v 1.1.2.3 2018/03/23 09:38:48 pgoyette Exp $   */
+/*     $NetBSD: compat_80_mod.c,v 1.1.2.4 2018/03/24 01:59:15 pgoyette Exp $   */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_80_mod.c,v 1.1.2.3 2018/03/23 09:38:48 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_80_mod.c,v 1.1.2.4 2018/03/24 01:59:15 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -86,7 +86,7 @@
 MODULE(MODULE_CLASS_EXEC, compat_80, REQD_80);
 
 static int
-compat_70_modcmd(modcmd_t cmd, void *arg)
+compat_80_modcmd(modcmd_t cmd, void *arg)
 {
 
        switch (cmd) {
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/compat/common/files.common
--- a/sys/compat/common/files.common    Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/compat/common/files.common    Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.common,v 1.1.2.17 2018/03/23 09:38:48 pgoyette Exp $
+#      $NetBSD: files.common,v 1.1.2.18 2018/03/24 01:59:15 pgoyette Exp $
 
 #
 # Generic files, used by all compat options.
@@ -83,7 +83,6 @@
 
 # Compatability code for NetBSD 8.0
 file   compat/common/compat_80_mod.c           compat_80
-#file  compat/common/raidframe80.c             compat_80 & raid
 
 #
 # Sources for sysv ipc compatibility across the versions.
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/dev/raidframe/rf_compat50.c
--- a/sys/dev/raidframe/rf_compat50.c   Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/dev/raidframe/rf_compat50.c   Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_compat50.c,v 1.3 2018/01/18 00:32:49 mrg Exp $      */
+/*     $NetBSD: rf_compat50.c,v 1.3.2.1 2018/03/24 01:59:15 pgoyette Exp $     */
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -40,6 +40,8 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 
+#include <sys/compat_stub.h>
+
 #include <dev/raidframe/raidframeio.h>
 #include <dev/raidframe/raidframevar.h>
 
@@ -214,3 +216,38 @@
        RF_Free(d_cfg, sizeof(RF_DeviceConfig50_t));
        return error;
 }
+
+int
+raidframe_ioctl_50(int cmd, int initted, RF_Raid_t *raidPtr, int unit,
+    void *data, RF_Config_t **k_cfg)
+{
+       int error;
+
+       switch (cmd) {
+       case RAIDFRAME_GET_INFO50:
+               if (initted == 0)
+                       return ENXIO;
+               return rf_get_info50(raidPtr, data);
+
+       case RAIDFRAME_CONFIGURE50:
+               error = rf_config50(raidPtr, unit, data, k_cfg);
+               if (error != 0)
+                       return error;
+               return EAGAIN;  /* flag mainline to call generic config */
+       }
+       return EPASSTHROUGH;
+}
+
+void
+raidframe_50_init(void)
+{
+
+       raidframe50_ioctl = raidframe_ioctl_50;
+}
+
+void
+raidframe_50_fini(void)
+{
+
+       raidframe50_ioctl = (void *)enosys;
+}
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/dev/raidframe/rf_compat50.h
--- a/sys/dev/raidframe/rf_compat50.h   Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/dev/raidframe/rf_compat50.h   Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_compat50.h,v 1.2 2015/09/06 06:01:00 dholland Exp $ */
+/*     $NetBSD: rf_compat50.h,v 1.2.16.1 2018/03/24 01:59:15 pgoyette Exp $    */
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -47,4 +47,9 @@
 int rf_config50(RF_Raid_t *, int, void *, RF_Config_t **);
 int rf_get_info50(RF_Raid_t *, void *);
 
+int raidframe_ioctl_50(int, int, RF_Raid_t *, int, void *, RF_Config_t **);
+
+void raidframe_50_fini(void);
+void raidframe_50_init(void);
+
 #endif /* _RF_COMPAT50_H_ */
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/dev/raidframe/rf_compat80.c
--- a/sys/dev/raidframe/rf_compat80.c   Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/dev/raidframe/rf_compat80.c   Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_compat80.c,v 1.2 2018/01/20 01:32:45 mrg Exp $      */
+/*     $NetBSD: rf_compat80.c,v 1.2.2.1 2018/03/24 01:59:15 pgoyette Exp $     */
 
 /*
  * Copyright (c) 2017 Matthew R. Green
@@ -32,6 +32,8 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 
+#include <sys/compat_stub.h>
+
 #include <dev/raidframe/raidframeio.h>
 #include <dev/raidframe/raidframevar.h>
 
@@ -217,3 +219,61 @@
        *k_cfgp = k_cfg;
        return 0;
 }
+
+int
+raidframe_ioctl_80(int cmd, int initted, RF_Raid_t *raidPtr, int unit,
+    void *data, RF_Config_t **k_cfg)  
+{
+int error;
+ 
+       switch (cmd) {
+       case RAIDFRAME_CHECK_RECON_STATUS_EXT80:
+       case RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT80:
+       case RAIDFRAME_CHECK_COPYBACK_STATUS_EXT80:
+       case RAIDFRAME_GET_INFO80:
+       case RAIDFRAME_GET_COMPONENT_LABEL80:
+               if (initted == 0)
+                       return ENXIO;
+               break;
+       case RAIDFRAME_CONFIGURE80:
+               break;
+       case RAIDFRAME_FAIL_DISK80:
+               return EPASSTHROUGH;
+       default:
+               return EINVAL;
+       }
+
+       switch (cmd) {
+       case RAIDFRAME_CHECK_RECON_STATUS_EXT80:
+               return rf_check_recon_status_ext80(raidPtr, data);
+       case RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT80:
+               return rf_check_parityrewrite_status_ext80(raidPtr, data);
+       case RAIDFRAME_CHECK_COPYBACK_STATUS_EXT80:
+               return rf_check_copyback_status_ext80(raidPtr, data);
+       case RAIDFRAME_GET_INFO80:
+               return rf_get_info80(raidPtr, data);
+       case RAIDFRAME_GET_COMPONENT_LABEL80:
+               return rf_get_component_label80(raidPtr, data);
+       case RAIDFRAME_CONFIGURE80:
+               error = rf_config80(raidPtr, unit, data, k_cfg);
+               if (error != 0)
+                       return error;
+               return EAGAIN;  /* flag mainline to call generic config */ 
+       }
+       return EPASSTHROUGH;
+}
+ 
+void  
+raidframe_80_init(void)
+{ 
+ 
+       raidframe80_ioctl = raidframe_ioctl_80;
+}
+ 
+void
+raidframe_80_fini(void)
+{
+ 
+       raidframe80_ioctl = (void *)enosys;
+}
+
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/dev/raidframe/rf_compat80.h
--- a/sys/dev/raidframe/rf_compat80.h   Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/dev/raidframe/rf_compat80.h   Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_compat80.h,v 1.2 2018/01/20 01:32:45 mrg Exp $      */
+/*     $NetBSD: rf_compat80.h,v 1.2.2.1 2018/03/24 01:59:15 pgoyette Exp $     */
 
 /*
  * Copyright (c) 2017 Matthew R. Green
@@ -132,4 +132,9 @@
 int rf_get_component_label80(RF_Raid_t *, void *);
 int rf_config80(RF_Raid_t *, int, void *, RF_Config_t **);
 
+int raidframe_ioctl_80(int, int, RF_Raid_t *, int, void *, RF_Config_t **);
+
+void raidframe_80_init(void);
+void raidframe_80_fini(void);
+
 #endif /* _RF_COMPAT80_H_ */
diff -r a9f30568a3e4 -r 6bcafc1736e0 sys/dev/raidframe/rf_netbsdkintf.c
--- a/sys/dev/raidframe/rf_netbsdkintf.c        Fri Mar 23 09:41:10 2018 +0000
+++ b/sys/dev/raidframe/rf_netbsdkintf.c        Sat Mar 24 01:59:15 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_netbsdkintf.c,v 1.356 2018/01/23 22:42:29 pgoyette Exp $    */
+/*     $NetBSD: rf_netbsdkintf.c,v 1.356.2.1 2018/03/24 01:59:15 pgoyette Exp $        */
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  ***********************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.356 2018/01/23 22:42:29 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.356.2.1 2018/03/24 01:59:15 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -128,6 +128,7 @@
 #include <sys/reboot.h>
 #include <sys/kauth.h>
 #include <sys/module.h>
+#include <sys/compat_stub.h>
 
 #include <prop/proplib.h>
 
@@ -149,13 +150,9 @@
 #include "rf_parityscan.h"
 #include "rf_threadstuff.h"
 
-#ifdef COMPAT_50
 #include "rf_compat50.h"
-#endif
-
-#ifdef COMPAT_80
+
 #include "rf_compat80.h"
-#endif



Home | Main Index | Thread Index | Old Index