Source-Changes-HG archive

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

[src/pgoyette-compat]: src/sys Adapt (most of) the indirect function pointers...



details:   https://anonhg.NetBSD.org/src/rev/0d0e854c012e
branches:  pgoyette-compat
changeset: 830718:0d0e854c012e
user:      pgoyette <pgoyette%NetBSD.org@localhost>
date:      Mon Sep 17 11:04:30 2018 +0000

description:
Adapt (most of) the indirect function pointers to the new MP-safe
mechanism.  Still remaining are the compat_netbsd32 stuff, and
some usb subroutines.

diffstat:

 sys/compat/common/bio_30.c          |   11 +-
 sys/compat/common/clockctl_50.c     |   11 +-
 sys/compat/common/if_43.c           |   12 +-
 sys/compat/common/if_spppsubr50.c   |   11 +-
 sys/compat/common/kern_mod_80.c     |   11 +-
 sys/compat/common/rtsock_14.c       |   21 +++--
 sys/compat/common/sysmon_power_40.c |   14 ++-
 sys/compat/common/vnd_30.c          |   13 ++-
 sys/compat/net/if.h                 |    4 +-
 sys/dev/bio.c                       |   11 ++-
 sys/dev/clockctl.c                  |   19 +++-
 sys/dev/raidframe/rf_compat50.c     |    9 +-
 sys/dev/raidframe/rf_compat80.c     |   15 ++-
 sys/dev/raidframe/rf_netbsdkintf.c  |   24 ++++-
 sys/dev/sysmon/sysmon_power.c       |   13 ++-
 sys/dev/vnd.c                       |   22 +++--
 sys/dev/wscons/wsevent.c            |   10 +-
 sys/dev/wscons/wsevent_50.c         |   12 ++-
 sys/fs/puffs/puffs_compat.c         |   17 ++-
 sys/fs/puffs/puffs_msgif.c          |   20 ++++-
 sys/fs/puffs/puffs_sys.h            |    4 +-
 sys/kern/compat_stub.c              |  141 ++++++++++++++++++-----------------
 sys/kern/sys_module.c               |   11 ++-
 sys/net/if_spppsubr.c               |   10 +-
 sys/net/rtsock.c                    |   25 +++++-
 sys/opencrypto/cryptodev.c          |   11 ++-
 sys/opencrypto/ocryptodev.c         |   12 ++-
 sys/sys/compat_stub.h               |   94 ++++++++++++-----------
 28 files changed, 357 insertions(+), 231 deletions(-)

diffs (truncated from 1526 to 300 lines):

diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/bio_30.c
--- a/sys/compat/common/bio_30.c        Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/bio_30.c        Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: bio_30.c,v 1.1.2.1 2018/03/28 04:18:24 pgoyette Exp $ */
+/*     $NetBSD: bio_30.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $ */
 /*     $OpenBSD: bio.c,v 1.9 2007/03/20 02:35:55 marco Exp $   */
 
 /*
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bio_30.c,v 1.1.2.1 2018/03/28 04:18:24 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bio_30.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -88,16 +88,19 @@
        }
 }
 
+COMPAT_SET_HOOK(compat_bio_30_hook, "bio_30", compat_30_bio);
+COMPAT_UNSET_HOOK(compat_bio_30_hook);
+
 void
 bio_30_init(void)
 {
 
-       compat_bio_30 = compat_30_bio;
+       compat_bio_30_hook_set();
 }
 
 void
 bio_30_fini(void)
 {
 
-       compat_bio_30 = (void *)enosys;
+       compat_bio_30_hook_unset();
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/clockctl_50.c
--- a/sys/compat/common/clockctl_50.c   Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/clockctl_50.c   Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: clockctl_50.c,v 1.1.2.1 2018/03/21 04:48:31 pgoyette Exp $ */
+/*      $NetBSD: clockctl_50.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clockctl_50.c,v 1.1.2.1 2018/03/21 04:48:31 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clockctl_50.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -122,16 +122,19 @@
        return (error);
 }
 
+COMPAT_SET_HOOK(clockctl_ioctl_50_hook, "clk_50", compat50_clockctlioctl);
+COMPAT_UNSET_HOOK(clockctl_ioctl_50_hook);
+
 void
 clockctl_50_init(void)
 {
 
-       compat_clockctl_ioctl_50 = compat50_clockctlioctl;
+       clockctl_ioctl_50_hook_set();
 }
 
 void
 clockctl_50_fini(void)
 {
 
-       compat_clockctl_ioctl_50 = (void *)enosys;
+       clockctl_ioctl_50_hook_unset();
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/if_43.c
--- a/sys/compat/common/if_43.c Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/if_43.c Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_43.c,v 1.14.2.1 2018/03/30 02:28:49 pgoyette Exp $  */
+/*     $NetBSD: if_43.c,v 1.14.2.2 2018/09/17 11:04:30 pgoyette Exp $  */
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1990, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.1 2018/03/30 02:28:49 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -77,6 +77,9 @@
 #include <compat/common/if_43.h>
 #include <uvm/uvm_extern.h>
 
+/* COMPAT_HOOK for replacing the cmdcvt() function */
+COMPAT_CALL_HOOK(ieee80211_get_ostats_20_hook, f, (int cmd), (cmd), cmd);
+
 u_long 
 compat_cvtcmd(u_long cmd)
 { 
@@ -202,10 +205,7 @@
                case TAPGIFNAME:
                        return ncmd;
                default:
-                       if ((*if43_20_cvtcmd)(ncmd) == 0)
-                               return ncmd;
-                       else
-                               return cmd;
+                       return ieee80211_get_ostats_20_hook_f_call(ncmd);
                }
        }
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/if_spppsubr50.c
--- a/sys/compat/common/if_spppsubr50.c Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/if_spppsubr50.c Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_spppsubr50.c,v 1.1.2.1 2018/03/21 10:12:48 pgoyette Exp $    */
+/*     $NetBSD: if_spppsubr50.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $    */
 
 /*
  * Synchronous PPP/Cisco link level subroutines.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_spppsubr50.c,v 1.1.2.1 2018/03/21 10:12:48 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr50.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -154,16 +154,19 @@
        return 0;
 }
 
+COMPAT_SET_HOOK(sppp_params_50_hook, "sppp60", sppp_compat50_params);
+COMPAT_UNSET_HOOK(sppp_params_50_hook);
+
 void
 if_spppsubr_50_init(void)
 {
 
-       sppp_params50 = sppp_compat50_params;
+       sppp_params_50_hook_set();
 }
 
 void
 if_spppsubr_50_fini(void)
 {
 
-       sppp_params50 = (void *)enosys;
+       sppp_params_50_hook_unset();
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/kern_mod_80.c
--- a/sys/compat/common/kern_mod_80.c   Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/kern_mod_80.c   Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_mod_80.c,v 1.1.2.4 2018/09/07 23:32:30 pgoyette Exp $     */
+/*     $NetBSD: kern_mod_80.c,v 1.1.2.5 2018/09/17 11:04:30 pgoyette Exp $     */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_mod_80.c,v 1.1.2.4 2018/09/07 23:32:30 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_mod_80.c,v 1.1.2.5 2018/09/17 11:04:30 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_modular.h"
@@ -151,16 +151,19 @@
        return error;
 }
 
+COMPAT_SET_HOOK(compat_modstat_80_hook, "mod_80",compat_80_modstat);
+COMPAT_UNSET_HOOK(compat_modstat_80_hook);
+
 void
 kern_mod_80_init(void)
 {
 
-       compat_modstat_80 = compat_80_modstat;
+       compat_modstat_80_hook_set();
 }
 
 void
 kern_mod_80_fini(void)
 {
 
-       compat_modstat_80 = (void *)enosys;
+       compat_modstat_80_hook_unset();
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/rtsock_14.c
--- a/sys/compat/common/rtsock_14.c     Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/rtsock_14.c     Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rtsock_14.c,v 1.5.14.1 2018/03/30 10:09:07 pgoyette Exp $      */
+/*     $NetBSD: rtsock_14.c,v 1.5.14.2 2018/09/17 11:04:30 pgoyette Exp $      */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_14.c,v 1.5.14.1 2018/03/30 10:09:07 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_14.c,v 1.5.14.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -91,7 +91,7 @@
 
 #include <compat/common/compat_mod.h>
 
-void
+int
 compat_14_rt_oifmsg(struct ifnet *ifp)
 {
        struct if_msghdr14 oifm;
@@ -100,7 +100,7 @@
        struct timeval tv;
 
        if (compat_50_route_info.ri_cb.any_count == 0)
-               return;
+               return 0;
        (void)memset(&info, 0, sizeof(info));
        (void)memset(&oifm, 0, sizeof(oifm));
        oifm.ifm_index = ifp->if_index;
@@ -127,8 +127,9 @@
        oifm.ifm_addrs = 0;
        m = compat_50_rt_msg1(RTM_OOIFINFO, &info, (void *)&oifm, sizeof(oifm));
        if (m == NULL)
-               return;
+               return 0;
        compat_50_route_enqueue(m, 0);
+       return 0;
 }
 
 int
@@ -169,18 +170,20 @@
        return 0;
 }
 
+COMPAT_SET_HOOK2(rtsock14_hook, "rts_14", compat_14_rt_oifmsg,
+    compat_14_iflist);
+COMPAT_UNSET_HOOK2(rtsock14_hook);
+
 void
 rtsock_14_init(void)
 {
 
-       rtsock14_oifmsg = compat_14_rt_oifmsg;
-       rtsock14_iflist = compat_14_iflist;
+       rtsock14_hook_set();
 }
 
 void
 rtsock_14_fini(void)
 {
 
-       rtsock14_oifmsg = (void *)voidop;
-       rtsock14_iflist = (void *)enosys;
+       rtsock14_hook_unset();
 }
diff -r c39d6c7ff5b6 -r 0d0e854c012e sys/compat/common/sysmon_power_40.c
--- a/sys/compat/common/sysmon_power_40.c       Mon Sep 17 10:06:29 2018 +0000
+++ b/sys/compat/common/sysmon_power_40.c       Mon Sep 17 11:04:30 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sysmon_power_40.c,v 1.1.2.1 2018/03/27 07:29:44 pgoyette Exp $ */
+/*     $NetBSD: sysmon_power_40.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 2007 Juan Romero Pardines.
@@ -62,7 +62,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_power_40.c,v 1.1.2.1 2018/03/27 07:29:44 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_power_40.c,v 1.1.2.2 2018/09/17 11:04:30 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -73,7 +73,7 @@
 
 #include <compat/common/compat_mod.h>
 
-static void
+static int
 compat_40_sysmon_power(power_event_t *pev, struct sysmon_pswitch *pswitch,
     int event)
 {
@@ -86,18 +86,22 @@



Home | Main Index | Thread Index | Old Index