Module Name:    src
Committed By:   pgoyette
Date:           Sun Jan 13 10:49:51 UTC 2019

Modified Files:
        src/sys/arch/amd64/amd64 [pgoyette-compat]: netbsd32_machdep.c
        src/sys/arch/mips/mips [pgoyette-compat]: netbsd32_machdep.c
        src/sys/arch/sparc/fpu [pgoyette-compat]: fpu.c
        src/sys/arch/sparc64/sparc64 [pgoyette-compat]: netbsd32_machdep.c
        src/sys/compat/common [pgoyette-compat]: if_43.c rtsock_14.c
            rtsock_70.c tty_60.c usb_subr_30.c
        src/sys/compat/netbsd32 [pgoyette-compat]: netbsd32_kern_proc.c
            netbsd32_module.c
        src/sys/dev [pgoyette-compat]: bio.c ccd.c clockctl.c vnd.c
        src/sys/dev/raidframe [pgoyette-compat]: rf_netbsdkintf.c
        src/sys/dev/sysmon [pgoyette-compat]: sysmon_power.c
        src/sys/dev/usb [pgoyette-compat]: ugen.c uhid.c usb.c
        src/sys/dev/wscons [pgoyette-compat]: wsevent.c
        src/sys/fs/puffs [pgoyette-compat]: puffs_compat.c puffs_msgif.c
        src/sys/kern [pgoyette-compat]: compat_stub.c kern_proc.c kern_rndq.c
            sys_module.c sysv_ipc.c tty.c tty_ptm.c uipc_usrreq.c
            vfs_syscalls.c
        src/sys/net [pgoyette-compat]: if.c if_spppsubr.c rtsock.c
        src/sys/net80211 [pgoyette-compat]: ieee80211_ioctl.c
        src/sys/opencrypto [pgoyette-compat]: cryptodev.c
        src/sys/sys [pgoyette-compat]: compat_stub.h module_hook.h

Log Message:
Remove the HOOK2 versions of the MODULE_HOOK macros.  There were
only a few uses, and using them led to some lack of clarity in the
code.  Instead, we now use two separate hooks, with names that
make it clear(er) what we're doing.

This also positions us to start unraveling some of the rtsock_50
mess, which will need (at least) five hooks.


To generate a diff of this commit:
cvs rdiff -u -r1.115.2.12 -r1.115.2.13 \
    src/sys/arch/amd64/amd64/netbsd32_machdep.c
cvs rdiff -u -r1.15.2.8 -r1.15.2.9 src/sys/arch/mips/mips/netbsd32_machdep.c
cvs rdiff -u -r1.27.46.1 -r1.27.46.2 src/sys/arch/sparc/fpu/fpu.c
cvs rdiff -u -r1.110.14.1 -r1.110.14.2 \
    src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
cvs rdiff -u -r1.14.2.10 -r1.14.2.11 src/sys/compat/common/if_43.c
cvs rdiff -u -r1.5.14.4 -r1.5.14.5 src/sys/compat/common/rtsock_14.c
cvs rdiff -u -r1.2.2.2 -r1.2.2.3 src/sys/compat/common/rtsock_70.c
cvs rdiff -u -r1.4.16.5 -r1.4.16.6 src/sys/compat/common/tty_60.c
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/compat/common/usb_subr_30.c
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/compat/netbsd32/netbsd32_kern_proc.c
cvs rdiff -u -r1.6.2.9 -r1.6.2.10 src/sys/compat/netbsd32/netbsd32_module.c
cvs rdiff -u -r1.13.16.5 -r1.13.16.6 src/sys/dev/bio.c
cvs rdiff -u -r1.175.2.8 -r1.175.2.9 src/sys/dev/ccd.c
cvs rdiff -u -r1.35.14.8 -r1.35.14.9 src/sys/dev/clockctl.c
cvs rdiff -u -r1.263.2.10 -r1.263.2.11 src/sys/dev/vnd.c
cvs rdiff -u -r1.356.2.6 -r1.356.2.7 src/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -u -r1.58.2.5 -r1.58.2.6 src/sys/dev/sysmon/sysmon_power.c
cvs rdiff -u -r1.139.2.6 -r1.139.2.7 src/sys/dev/usb/ugen.c
cvs rdiff -u -r1.101.2.5 -r1.101.2.6 src/sys/dev/usb/uhid.c
cvs rdiff -u -r1.168.2.7 -r1.168.2.8 src/sys/dev/usb/usb.c
cvs rdiff -u -r1.37.2.6 -r1.37.2.7 src/sys/dev/wscons/wsevent.c
cvs rdiff -u -r1.4.16.3 -r1.4.16.4 src/sys/fs/puffs/puffs_compat.c
cvs rdiff -u -r1.101.10.6 -r1.101.10.7 src/sys/fs/puffs/puffs_msgif.c
cvs rdiff -u -r1.1.2.33 -r1.1.2.34 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.209.2.10 -r1.209.2.11 src/sys/kern/kern_proc.c
cvs rdiff -u -r1.89.16.4 -r1.89.16.5 src/sys/kern/kern_rndq.c
cvs rdiff -u -r1.23.2.13 -r1.23.2.14 src/sys/kern/sys_module.c
cvs rdiff -u -r1.32.16.6 -r1.32.16.7 src/sys/kern/sysv_ipc.c
cvs rdiff -u -r1.275.2.5 -r1.275.2.6 src/sys/kern/tty.c
cvs rdiff -u -r1.37.16.2 -r1.37.16.3 src/sys/kern/tty_ptm.c
cvs rdiff -u -r1.183.2.6 -r1.183.2.7 src/sys/kern/uipc_usrreq.c
cvs rdiff -u -r1.518.2.2 -r1.518.2.3 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.419.2.18 -r1.419.2.19 src/sys/net/if.c
cvs rdiff -u -r1.179.2.7 -r1.179.2.8 src/sys/net/if_spppsubr.c
cvs rdiff -u -r1.238.2.16 -r1.238.2.17 src/sys/net/rtsock.c
cvs rdiff -u -r1.60.16.4 -r1.60.16.5 src/sys/net80211/ieee80211_ioctl.c
cvs rdiff -u -r1.98.2.7 -r1.98.2.8 src/sys/opencrypto/cryptodev.c
cvs rdiff -u -r1.1.2.45 -r1.1.2.46 src/sys/sys/compat_stub.h
cvs rdiff -u -r1.1.2.8 -r1.1.2.9 src/sys/sys/module_hook.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/arch/amd64/amd64/netbsd32_machdep.c
diff -u src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.12 src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.13
--- src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.12	Wed Dec 26 14:01:31 2018
+++ src/sys/arch/amd64/amd64/netbsd32_machdep.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.115.2.12 2018/12/26 14:01:31 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.115.2.13 2019/01/13 10:49:49 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.115.2.12 2018/12/26 14:01:31 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.115.2.13 2019/01/13 10:49:49 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -275,9 +275,9 @@ netbsd32_sendsig_siginfo(const ksiginfo_
 
 struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
 
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask));
-MODULE_CALL_HOOK(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
     netbsd32_sendsig_siginfo(ksi, mask));
 
@@ -285,7 +285,7 @@ void
 netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
 {
 
-	netbsd32_sendsig_hook_f_call(ksi, mask);
+	netbsd32_sendsig_hook_call(ksi, mask);
 }
 
 #ifdef COREDUMP

Index: src/sys/arch/mips/mips/netbsd32_machdep.c
diff -u src/sys/arch/mips/mips/netbsd32_machdep.c:1.15.2.8 src/sys/arch/mips/mips/netbsd32_machdep.c:1.15.2.9
--- src/sys/arch/mips/mips/netbsd32_machdep.c:1.15.2.8	Wed Dec 26 14:01:40 2018
+++ src/sys/arch/mips/mips/netbsd32_machdep.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.15.2.8 2018/12/26 14:01:40 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.15.2.9 2019/01/13 10:49:49 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.15.2.8 2018/12/26 14:01:40 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.15.2.9 2019/01/13 10:49:49 pgoyette Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_coredump.h"
@@ -309,9 +309,9 @@ cpu_coredump32(struct lwp *l, struct cor
 
 struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
  
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask));
-MODULE_CALL_HOOK(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),  
     netbsd32_sendsig_siginfo(ksi, mask));
 
@@ -319,7 +319,7 @@ void
 netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
 {
 
-	netbsd32_sendsig_hook_f_call(ksi, mask);
+	netbsd32_sendsig_hook_call(ksi, mask);
 }
 
 void    

Index: src/sys/arch/sparc/fpu/fpu.c
diff -u src/sys/arch/sparc/fpu/fpu.c:1.27.46.1 src/sys/arch/sparc/fpu/fpu.c:1.27.46.2
--- src/sys/arch/sparc/fpu/fpu.c:1.27.46.1	Tue Oct  2 01:43:53 2018
+++ src/sys/arch/sparc/fpu/fpu.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpu.c,v 1.27.46.1 2018/10/02 01:43:53 pgoyette Exp $ */
+/*	$NetBSD: fpu.c,v 1.27.46.2 2019/01/13 10:49:49 pgoyette Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.27.46.1 2018/10/02 01:43:53 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.27.46.2 2019/01/13 10:49:49 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -122,8 +122,8 @@ static u_char fpu_codes_sunos[] = {
 /*
  * HOOK for checking if the lwp's emul matches sunos
  */
-MODULE_CALL_HOOK_DECL(get_emul_sunos_hook, f, (const struct emul **emul));
-MODULE_CALL_HOOK(get_emul_sunos_hook, f, (const struct emul ** emul), (emul),
+MODULE_CALL_HOOK_DECL(get_emul_sunos_hook, (const struct emul **emul));
+MODULE_CALL_HOOK(get_emul_sunos_hook, (const struct emul ** emul), (emul),
     enosys());
 
 /*
@@ -150,7 +150,7 @@ fpu_cleanup(
 	int code = 0;
 	const struct emul *sunos_emul;
 
-	if (get_emul_sunos_hook_f_call(&sunos_emul) == 0 &&
+	if (get_emul_sunos_hook_call(&sunos_emul) == 0 &&
 	    p->p_emul == sunos_emul)
 		fpu_codes = fpu_codes_sunos;
 	else

Index: src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
diff -u src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.1 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.2
--- src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.1	Sun Sep 30 00:17:55 2018
+++ src/sys/arch/sparc64/sparc64/netbsd32_machdep.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.110.14.1 2018/09/30 00:17:55 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.110.14.2 2019/01/13 10:49:49 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.110.14.1 2018/09/30 00:17:55 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.110.14.2 2019/01/13 10:49:49 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -262,9 +262,9 @@ netbsd32_sendsig_siginfo(const ksiginfo_
 
 struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
         
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask));  
-MODULE_CALL_HOOK(netbsd32_sendsig_hook, f,
+MODULE_CALL_HOOK(netbsd32_sendsig_hook,
     (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
     netbsd32_sendsig_siginfo(ksi, mask));
 
@@ -272,7 +272,7 @@ void
 netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
 {
 
-	netbsd32_sendsig_hook_f_call(ksi, mask);
+	netbsd32_sendsig_hook_call(ksi, mask);
 }
 
 #undef DEBUG

Index: src/sys/compat/common/if_43.c
diff -u src/sys/compat/common/if_43.c:1.14.2.10 src/sys/compat/common/if_43.c:1.14.2.11
--- src/sys/compat/common/if_43.c:1.14.2.10	Mon Oct 15 04:33:34 2018
+++ src/sys/compat/common/if_43.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_43.c,v 1.14.2.10 2018/10/15 04:33:34 pgoyette Exp $	*/
+/*	$NetBSD: if_43.c,v 1.14.2.11 2019/01/13 10:49:49 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.10 2018/10/15 04:33:34 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.11 2019/01/13 10:49:49 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -84,8 +84,8 @@ __KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.
  * XXX The if43_20 routine doesn't really have any effect, since its
  * XXX return value is ignored (see compat/common/if_43.c)!
  */
-MODULE_CALL_HOOK_DECL(if43_20_hook, f, (u_long ncmd));
-MODULE_CALL_HOOK(if43_20_hook, f, (u_long ncmd), (ncmd), enosys());
+MODULE_CALL_HOOK_DECL(if43_20_hook, (u_long ncmd));
+MODULE_CALL_HOOK(if43_20_hook, (u_long ncmd), (ncmd), enosys());
 
 /* 
  * Use a wrapper so that the compat_cvtcmd() can return a u_long
@@ -221,7 +221,7 @@ compat_cvtcmd(u_long cmd)
 		case TAPGIFNAME:
 			return ncmd;
 		default:
-			(void)if43_20_hook_f_call(ncmd);
+			(void)if43_20_hook_call(ncmd);
 			return ncmd;
 		}
 	}
@@ -298,14 +298,17 @@ compat_ifioctl(struct socket *so, u_long
 	return error;
 }
 
-MODULE_SET_HOOK2(if_43_hook, "if_43", do_compat_cvtcmd, compat_ifioctl);
-MODULE_UNSET_HOOK2(if_43_hook);
+MODULE_SET_HOOK(if_43_cvtcmd_hook, "if_43", do_compat_cvtcmd);
+MODULE_SET_HOOK(if_43_ifioctl_hook, "if_43", compat_ifioctl);
+MODULE_UNSET_HOOK(if_43_cvtcmd_hook);
+MODULE_UNSET_HOOK(if_43_ifioctl_hook);
 
 int
 if_43_init(void)
 {
 
-	if_43_hook_set();
+	if_43_cvtcmd_hook_set();
+	if_43_ifioctl_hook_set();
 	return 0;
 }
 
@@ -313,7 +316,8 @@ int
 if_43_fini(void)
 {
 
-	if_43_hook_unset();
+	if_43_cvtcmd_hook_unset();
+	if_43_ifioctl_hook_unset();
 	return 0;
 }
 #endif /* defined(COMPAT_43) */

Index: src/sys/compat/common/rtsock_14.c
diff -u src/sys/compat/common/rtsock_14.c:1.5.14.4 src/sys/compat/common/rtsock_14.c:1.5.14.5
--- src/sys/compat/common/rtsock_14.c:1.5.14.4	Sat Sep 22 04:56:28 2018
+++ src/sys/compat/common/rtsock_14.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtsock_14.c,v 1.5.14.4 2018/09/22 04:56:28 pgoyette Exp $	*/
+/*	$NetBSD: rtsock_14.c,v 1.5.14.5 2019/01/13 10:49:49 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.4 2018/09/22 04:56:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_14.c,v 1.5.14.5 2019/01/13 10:49:49 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -174,20 +174,23 @@ compat_14_iflist(struct ifnet *ifp, stru
 	return 0;
 }
 
-MODULE_SET_HOOK2(rtsock14_hook, "rts_14", compat_14_rt_oifmsg,
-    compat_14_iflist);
-MODULE_UNSET_HOOK2(rtsock14_hook);
+MODULE_SET_HOOK(rtsock_14_oifmsg_hook, "rts_14", compat_14_rt_oifmsg);
+MODULE_SET_HOOK(rtsock_14_iflist_hook, "rts_14", compat_14_iflist);
+MODULE_UNSET_HOOK(rtsock_14_oifmsg_hook);
+MODULE_UNSET_HOOK(rtsock_14_iflist_hook);
 
 void
 rtsock_14_init(void)
 {
 
-	rtsock14_hook_set();
+	rtsock_14_iflist_hook_set();
+	rtsock_14_oifmsg_hook_set();
 }
 
 void
 rtsock_14_fini(void)
 {
 
-	rtsock14_hook_unset();
+	rtsock_14_iflist_hook_unset();
+	rtsock_14_oifmsg_hook_unset();
 }

Index: src/sys/compat/common/rtsock_70.c
diff -u src/sys/compat/common/rtsock_70.c:1.2.2.2 src/sys/compat/common/rtsock_70.c:1.2.2.3
--- src/sys/compat/common/rtsock_70.c:1.2.2.2	Mon Oct 15 04:33:34 2018
+++ src/sys/compat/common/rtsock_70.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtsock_70.c,v 1.2.2.2 2018/10/15 04:33:34 pgoyette Exp $	*/
+/*	$NetBSD: rtsock_70.c,v 1.2.2.3 2019/01/13 10:49:49 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.2.2.2 2018/10/15 04:33:34 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.2.2.3 2019/01/13 10:49:49 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -117,20 +117,23 @@ compat_70_iflist_addr(struct rt_walkarg 
 	return error;
 }
 
-MODULE_SET_HOOK2(rtsock_70_hook, "rts_70", compat_70_rt_newaddrmsg1,
-    compat_70_iflist_addr);
-MODULE_UNSET_HOOK2(rtsock_70_hook);
+MODULE_SET_HOOK(rtsock_70_newaddr_hook, "rts_70", compat_70_rt_newaddrmsg1);
+MODULE_SET_HOOK(rtsock_70_iflist_hook, "rts_70", compat_70_iflist_addr);
+MODULE_UNSET_HOOK(rtsock_70_newaddr_hook);
+MODULE_UNSET_HOOK(rtsock_70_iflist_hook);
 
 void
 rtsock_70_init(void)
 {
 
-	rtsock_70_hook_set();
+	rtsock_70_newaddr_hook_set();
+	rtsock_70_iflist_hook_set();
 }
 
 void
 rtsock_70_fini(void)
 {
 
-	rtsock_70_hook_unset();
+	rtsock_70_newaddr_hook_unset();
+	rtsock_70_iflist_hook_unset();
 }

Index: src/sys/compat/common/tty_60.c
diff -u src/sys/compat/common/tty_60.c:1.4.16.5 src/sys/compat/common/tty_60.c:1.4.16.6
--- src/sys/compat/common/tty_60.c:1.4.16.5	Mon Oct 15 09:51:33 2018
+++ src/sys/compat/common/tty_60.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty_60.c,v 1.4.16.5 2018/10/15 09:51:33 pgoyette Exp $	*/
+/*	$NetBSD: tty_60.c,v 1.4.16.6 2019/01/13 10:49:49 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty_60.c,v 1.4.16.5 2018/10/15 09:51:33 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty_60.c,v 1.4.16.6 2019/01/13 10:49:49 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -121,20 +121,23 @@ compat_60_ptmioctl(dev_t dev, u_long cmd
 /* 
  * Hooks for compat_60 ttioctl and ptmioctl
  */
-MODULE_SET_HOOK2(compat_60_ioctl_hook, "tty_60", compat_60_ttioctl,
-    compat_60_ptmioctl);
-MODULE_UNSET_HOOK2(compat_60_ioctl_hook);
+MODULE_SET_HOOK(compat_60_ttioctl_hook, "tty_60", compat_60_ttioctl);
+MODULE_SET_HOOK(compat_60_ptmioctl_hook, "tty_60", compat_60_ptmioctl);
+MODULE_UNSET_HOOK(compat_60_ttioctl_hook);
+MODULE_UNSET_HOOK(compat_60_ptmioctl_hook);
 
 
 void
 kern_tty_60_init(void)
 {
 
-	compat_60_ioctl_hook_set();
+	compat_60_ttioctl_hook_set();
+	compat_60_ptmioctl_hook_set();
 }
 
 void
 kern_tty_60_fini(void)
 {
-	compat_60_ioctl_hook_unset();
+	compat_60_ttioctl_hook_unset();
+	compat_60_ptmioctl_hook_unset();
 }

Index: src/sys/compat/common/usb_subr_30.c
diff -u src/sys/compat/common/usb_subr_30.c:1.1.2.5 src/sys/compat/common/usb_subr_30.c:1.1.2.6
--- src/sys/compat/common/usb_subr_30.c:1.1.2.5	Mon Nov 26 01:52:29 2018
+++ src/sys/compat/common/usb_subr_30.c	Sun Jan 13 10:49:49 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: usb_subr_30.c,v 1.1.2.5 2018/11/26 01:52:29 pgoyette Exp $	*/
+/*	$NetBSD: usb_subr_30.c,v 1.1.2.6 2019/01/13 10:49:49 pgoyette Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $	*/
 
 /*
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb_subr_30.c,v 1.1.2.5 2018/11/26 01:52:29 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb_subr_30.c,v 1.1.2.6 2019/01/13 10:49:49 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -228,20 +228,23 @@ usb_copy_to_old30(struct usb_event *ue, 
 	return 0;
 }
 
-MODULE_SET_HOOK2(usb_subr_30_hook, "usb_30", usbd_fill_deviceinfo_old,
-    usb_copy_to_old30);
-MODULE_UNSET_HOOK2(usb_subr_30_hook);
+MODULE_SET_HOOK(usb_subr_30_fill_hook, "usb_30", usbd_fill_deviceinfo_old);
+MODULE_SET_HOOK(usb_subr_30_copy_hook, "usb_30", usb_copy_to_old30);
+MODULE_UNSET_HOOK(usb_subr_30_fill_hook);
+MODULE_UNSET_HOOK(usb_subr_30_copy_hook);
 
 void
 usb_30_init(void)
 {
 
-	usb_subr_30_hook_set();
+	usb_subr_30_copy_hook_set();
+	usb_subr_30_fill_hook_set();
 }
 
 void
 usb_30_fini(void)
 {
 
-	usb_subr_30_hook_unset();
+	usb_subr_30_fill_hook_unset();
+	usb_subr_30_copy_hook_unset();
 }

Index: src/sys/compat/netbsd32/netbsd32_kern_proc.c
diff -u src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.4 src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.5
--- src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.4	Sun Sep 23 21:43:45 2018
+++ src/sys/compat/netbsd32/netbsd32_kern_proc.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_kern_proc.c,v 1.1.2.4 2018/09/23 21:43:45 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_kern_proc.c,v 1.1.2.5 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_kern_proc.c,v 1.1.2.4 2018/09/23 21:43:45 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_kern_proc.c,v 1.1.2.5 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_kstack.h"
@@ -137,9 +137,10 @@ get_base32(char **argv, size_t i, vaddr_
 }
 
 #if !defined(_RUMPSERVER)
-MODULE_SET_HOOK2(kern_proc_32_hook, "kern_proc_32",
-    copyin_psstrings_32, get_base32);
-MODULE_UNSET_HOOK2(kern_proc_32_hook);
+MODULE_SET_HOOK(kern_proc_32_copyin_hook, "kern_proc_32", copyin_psstrings_32);
+MODULE_SET_HOOK(kern_proc_32_base_hook, "kern_proc_32", get_base32);
+MODULE_UNSET_HOOK(kern_proc_32_copyin_hook);
+MODULE_UNSET_HOOK(kern_proc_32_base_hook);
 #endif
 
 void
@@ -147,7 +148,8 @@ netbsd32_kern_proc_32_init(void)
 {
 
 #if !defined(_RUMPSERVER)
-	kern_proc_32_hook_set();
+	kern_proc_32_copyin_hook_set();
+	kern_proc_32_base_hook_set();
 #endif
 }
 
@@ -156,6 +158,7 @@ netbsd32_kern_proc_32_fini(void)
 {
 
 #if !defined(_RUMPSERVER)
-	kern_proc_32_hook_unset();
+	kern_proc_32_copyin_hook_unset();
+	kern_proc_32_base_hook_unset();
 #endif
 }

Index: src/sys/compat/netbsd32/netbsd32_module.c
diff -u src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.9 src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.10
--- src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.9	Sat Sep 29 21:36:14 2018
+++ src/sys/compat/netbsd32/netbsd32_module.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_module.c,v 1.6.2.9 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_module.c,v 1.6.2.10 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_module.c,v 1.6.2.9 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_module.c,v 1.6.2.10 2019/01/13 10:49:50 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -201,10 +201,10 @@ compat32_80_modctl_compat_stub(struct lw
 }
 
 /* Module hook for netbsd32_80_modctl */
-MODULE_CALL_HOOK_DECL(compat32_80_modctl_hook, f,
+MODULE_CALL_HOOK_DECL(compat32_80_modctl_hook,
     (struct lwp *lwp, const struct netbsd32_modctl_args *uap,
       register_t *result));
-MODULE_CALL_HOOK(compat32_80_modctl_hook, f,
+MODULE_CALL_HOOK(compat32_80_modctl_hook,
     (struct lwp *lwp, const struct netbsd32_modctl_args *uap,
       register_t *result),
     (lwp, uap, result),
@@ -229,7 +229,7 @@ netbsd32_modctl(struct lwp *lwp, const s
 
 	arg = SCARG_P32(uap, arg);
 
-	error = compat32_80_modctl_hook_f_call(lwp, uap, result);
+	error = compat32_80_modctl_hook_call(lwp, uap, result);
 	if (error != EPASSTHROUGH && error != ENOSYS)
 		return error;
 

Index: src/sys/dev/bio.c
diff -u src/sys/dev/bio.c:1.13.16.5 src/sys/dev/bio.c:1.13.16.6
--- src/sys/dev/bio.c:1.13.16.5	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/bio.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: bio.c,v 1.13.16.5 2018/09/29 21:36:14 pgoyette Exp $ */
+/*	$NetBSD: bio.c,v 1.13.16.6 2019/01/13 10:49:50 pgoyette Exp $ */
 /*	$OpenBSD: bio.c,v 1.9 2007/03/20 02:35:55 marco Exp $	*/
 
 /*
@@ -28,7 +28,7 @@
 /* A device controller ioctl tunnelling device.  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.13.16.5 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.13.16.6 2019/01/13 10:49:50 pgoyette Exp $");
 
 #include "opt_compat_netbsd.h"
 
@@ -115,9 +115,9 @@ bioclose(dev_t dev, int flags, int mode,
 }
 
 /* Hook up the compat_bio_30 routine */
-MODULE_CALL_HOOK_DECL(compat_bio_30_hook, f,
+MODULE_CALL_HOOK_DECL(compat_bio_30_hook,
     (void * cookie, u_long cmd, void *addr, int(*ff)(void *, u_long, void *)));
-MODULE_CALL_HOOK(compat_bio_30_hook, f,
+MODULE_CALL_HOOK(compat_bio_30_hook,
     (void * cookie, u_long cmd, void *addr, int(*ff)(void *, u_long, void *)),
     (cookie, cmd, addr, ff), enosys());
 
@@ -196,7 +196,7 @@ bioioctl(dev_t dev, u_long cmd, void *ad
 			return ENOENT;
 		}
 		mutex_exit(&bio_lock);
-		error = compat_bio_30_hook_f_call(common->bc_cookie, cmd, addr,
+		error = compat_bio_30_hook_call(common->bc_cookie, cmd, addr,
 		    bio_delegate_ioctl);
 		if (error == ENOSYS)
 			error = bio_delegate_ioctl(common->bc_cookie, cmd,

Index: src/sys/dev/ccd.c
diff -u src/sys/dev/ccd.c:1.175.2.8 src/sys/dev/ccd.c:1.175.2.9
--- src/sys/dev/ccd.c:1.175.2.8	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/ccd.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ccd.c,v 1.175.2.8 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: ccd.c,v 1.175.2.9 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 1999, 2007, 2009 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.175.2.8 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.175.2.9 2019/01/13 10:49:50 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -1061,10 +1061,10 @@ ccdread(dev_t dev, struct uio *uio, int 
  * This looks ugly, since we pass the "real" ioctl function as an
  * argument to the compat_xxx function.
  */
-MODULE_CALL_HOOK_DECL(ccd_ioctl_60_hook, f, (dev_t dev, u_long cmd, void *data,
+MODULE_CALL_HOOK_DECL(ccd_ioctl_60_hook, (dev_t dev, u_long cmd, void *data,
     int flag, struct lwp *l, int (*ff)(dev_t, u_long, void *, int,
 					 struct lwp *)));
-MODULE_CALL_HOOK(ccd_ioctl_60_hook, f, (dev_t dev, u_long cmd, void *data,
+MODULE_CALL_HOOK(ccd_ioctl_60_hook, (dev_t dev, u_long cmd, void *data,
     int flag, struct lwp *l, int (*ff)(dev_t, u_long, void *, int,
 					 struct lwp *)),
     (dev, cmd, data, flag, l, ccdioctl), enosys());
@@ -1111,7 +1111,7 @@ ccdioctl(dev_t dev, u_long cmd, void *da
 		make = 1;
 		break;
 	default:
-		if (ccd_ioctl_60_hook_f_call(0, cmd, NULL, 0, NULL, NULL)
+		if (ccd_ioctl_60_hook_call(0, cmd, NULL, 0, NULL, NULL)
 		    == 0)
 			make = 1;
 		else
@@ -1123,7 +1123,7 @@ ccdioctl(dev_t dev, u_long cmd, void *da
 		return ENOENT;
 	uc = kauth_cred_get();
 
-	error = ccd_ioctl_60_hook_f_call(dev, cmd, data, flag, l, ccdioctl);
+	error = ccd_ioctl_60_hook_call(dev, cmd, data, flag, l, ccdioctl);
 	if (error != ENOSYS)
 		return error;
 

Index: src/sys/dev/clockctl.c
diff -u src/sys/dev/clockctl.c:1.35.14.8 src/sys/dev/clockctl.c:1.35.14.9
--- src/sys/dev/clockctl.c:1.35.14.8	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/clockctl.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: clockctl.c,v 1.35.14.8 2018/09/29 21:36:14 pgoyette Exp $ */
+/*      $NetBSD: clockctl.c,v 1.35.14.9 2019/01/13 10:49:50 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clockctl.c,v 1.35.14.8 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clockctl.c,v 1.35.14.9 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ntp.h"
@@ -201,9 +201,9 @@ clockctl_modcmd(modcmd_t cmd, void *data
 }
 
 /* Hook the compat_50 stuff */
-MODULE_CALL_HOOK_DECL(clockctl_ioctl_50_hook, f,
+MODULE_CALL_HOOK_DECL(clockctl_ioctl_50_hook,
     (dev_t dev, u_long cmd, void *data, int flags, struct lwp *l));
-MODULE_CALL_HOOK(clockctl_ioctl_50_hook, f,
+MODULE_CALL_HOOK(clockctl_ioctl_50_hook,
     (dev_t dev, u_long cmd, void *data, int flags, struct lwp *l),
     (dev, cmd, data, flags, l), enosys());
 
@@ -270,7 +270,7 @@ clockctlioctl(
 		break;
 	}
 	default:
-		error = clockctl_ioctl_50_hook_f_call(dev, cmd, data, flags, l);
+		error = clockctl_ioctl_50_hook_call(dev, cmd, data, flags, l);
 		if (error == ENOSYS)
 			error = ENOTTY;
 	}

Index: src/sys/dev/vnd.c
diff -u src/sys/dev/vnd.c:1.263.2.10 src/sys/dev/vnd.c:1.263.2.11
--- src/sys/dev/vnd.c:1.263.2.10	Wed Dec 26 14:01:47 2018
+++ src/sys/dev/vnd.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnd.c,v 1.263.2.10 2018/12/26 14:01:47 pgoyette Exp $	*/
+/*	$NetBSD: vnd.c,v 1.263.2.11 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.263.2.10 2018/12/26 14:01:47 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.263.2.11 2019/01/13 10:49:50 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_vnd.h"
@@ -1126,19 +1126,19 @@ vndioctl_get(struct lwp *l, void *data, 
 	}
 }
 
-MODULE_CALL_HOOK_DECL(compat_vndioctl_30_hook, f,
+MODULE_CALL_HOOK_DECL(compat_vndioctl_30_hook,
     (u_long cmd, struct lwp *l, void *data, int unit, struct vattr *vattr,
      int (*ff)(struct lwp *, void *, int, struct vattr *)));
-MODULE_CALL_HOOK(compat_vndioctl_30_hook, f,
+MODULE_CALL_HOOK(compat_vndioctl_30_hook,
     (u_long cmd, struct lwp *l, void *data, int unit, struct vattr *vattr,
      int (*ff)(struct lwp *, void *, int, struct vattr *)),
     (cmd, l, data, unit, vattr, ff),
     enosys());
 
-MODULE_CALL_HOOK_DECL(compat_vndioctl_50_hook, f,
+MODULE_CALL_HOOK_DECL(compat_vndioctl_50_hook,
     (u_long cmd, struct lwp *l, void *data, int unit, struct vattr *vattr,
      int (*ff)(struct lwp *, void *, int, struct vattr *)));
-MODULE_CALL_HOOK(compat_vndioctl_50_hook, f,
+MODULE_CALL_HOOK(compat_vndioctl_50_hook,
     (u_long cmd, struct lwp *l, void *data, int unit, struct vattr *vattr,
      int (*ff)(struct lwp *, void *, int, struct vattr *)),
     (cmd, l, data, unit, vattr, ff),
@@ -1180,7 +1180,7 @@ vndioctl(dev_t dev, u_long cmd, void *da
 
 	default:
 		/* First check for COMPAT_50 hook */
-		error = compat_vndioctl_50_hook_f_call(cmd, l, data, unit,
+		error = compat_vndioctl_50_hook_call(cmd, l, data, unit,
 		    &vattr, vndioctl_get);
 
 		/*
@@ -1195,7 +1195,7 @@ vndioctl(dev_t dev, u_long cmd, void *da
 
 		/* If not already handled, try the COMPAT_30 hook */
 		if (error == EPASSTHROUGH)
-			error = compat_vndioctl_30_hook_f_call(cmd, l, data,
+			error = compat_vndioctl_30_hook_call(cmd, l, data,
 			    unit, &vattr, vndioctl_get);
 
 		/* If no COMPAT_30 module, or not handled, check writes */

Index: src/sys/dev/raidframe/rf_netbsdkintf.c
diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.6 src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.7
--- src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.6	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/raidframe/rf_netbsdkintf.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_netbsdkintf.c,v 1.356.2.6 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: rf_netbsdkintf.c,v 1.356.2.7 2019/01/13 10:49:50 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.2.6 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.356.2.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -1038,19 +1038,19 @@ raid_detach_unlocked(struct raid_softc *
 }
 
 /* Hooks to call the 5.0 and 8.0 ioctl compat code */
-MODULE_CALL_HOOK_DECL(raidframe50_ioctl_hook, f,
+MODULE_CALL_HOOK_DECL(raidframe50_ioctl_hook,
     (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
      RF_Config_t **k_cfg));
-MODULE_CALL_HOOK(raidframe50_ioctl_hook, f,
+MODULE_CALL_HOOK(raidframe50_ioctl_hook,
     (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
      RF_Config_t **k_cfg),
     (cmd, initted, raidPtr, unit, data, k_cfg),
     enosys());
 
-MODULE_CALL_HOOK_DECL(raidframe80_ioctl_hook, f,
+MODULE_CALL_HOOK_DECL(raidframe80_ioctl_hook,
     (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
      RF_Config_t **k_cfg));
-MODULE_CALL_HOOK(raidframe80_ioctl_hook, f,
+MODULE_CALL_HOOK(raidframe80_ioctl_hook,
     (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
      RF_Config_t **k_cfg),
     (cmd, initted, raidPtr, unit, data, k_cfg),
@@ -1139,7 +1139,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
 	 */
-	retcode = raidframe50_ioctl_hook_f_call(cmd,
+	retcode = raidframe50_ioctl_hook_call(cmd,
 	    (rs->sc_flags & RAIDF_INITED), raidPtr, unit, data, &k_cfg);
 	if (retcode == ENOSYS)
 		retcode = 0;
@@ -1148,7 +1148,7 @@ raidioctl(dev_t dev, u_long cmd, void *d
 	else if (retcode != EPASSTHROUGH)
 		return retcode;
 
-	retcode = raidframe80_ioctl_hook_f_call(cmd,
+	retcode = raidframe80_ioctl_hook_call(cmd,
 	    (rs->sc_flags & RAIDF_INITED), raidPtr, unit, data, &k_cfg);
 	if (retcode == ENOSYS)
 		retcode = 0;

Index: src/sys/dev/sysmon/sysmon_power.c
diff -u src/sys/dev/sysmon/sysmon_power.c:1.58.2.5 src/sys/dev/sysmon/sysmon_power.c:1.58.2.6
--- src/sys/dev/sysmon/sysmon_power.c:1.58.2.5	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/sysmon/sysmon_power.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysmon_power.c,v 1.58.2.5 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: sysmon_power.c,v 1.58.2.6 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2007 Juan Romero Pardines.
@@ -69,7 +69,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_power.c,v 1.58.2.5 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_power.c,v 1.58.2.6 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -318,9 +318,9 @@ sysmon_power_event_queue_flush(void)
 /*
  * Call the compat hook function
  */
-MODULE_CALL_HOOK_DECL(compat_sysmon_power_40_hook, f,
+MODULE_CALL_HOOK_DECL(compat_sysmon_power_40_hook,
     (power_event_t *pev, struct sysmon_pswitch *pswitch, int event));
-MODULE_CALL_HOOK(compat_sysmon_power_40_hook, f,
+MODULE_CALL_HOOK(compat_sysmon_power_40_hook,
     (power_event_t *pev, struct sysmon_pswitch *pswitch, int event),
     (pev, pswitch, event), enosys());
 
@@ -355,7 +355,7 @@ sysmon_power_daemon_task(struct power_ev
 
 		pev.pev_type = POWER_EVENT_SWITCH_STATE_CHANGE;
 
-		(void)compat_sysmon_power_40_hook_f_call(&pev, pswitch, event);
+		(void)compat_sysmon_power_40_hook_call(&pev, pswitch, event);
 
 		error = sysmon_power_make_dictionary(ped->dict,
 						     pswitch,

Index: src/sys/dev/usb/ugen.c
diff -u src/sys/dev/usb/ugen.c:1.139.2.6 src/sys/dev/usb/ugen.c:1.139.2.7
--- src/sys/dev/usb/ugen.c:1.139.2.6	Mon Nov 26 01:52:47 2018
+++ src/sys/dev/usb/ugen.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ugen.c,v 1.139.2.6 2018/11/26 01:52:47 pgoyette Exp $	*/
+/*	$NetBSD: ugen.c,v 1.139.2.7 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.139.2.6 2018/11/26 01:52:47 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.139.2.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -1439,7 +1439,7 @@ ugen_get_alt_index(struct ugen_softc *sc
 	return usbd_get_interface_altindex(iface);
 }
 
-MODULE_CALL_HOOK_DECL(usb_subr_30_hook, f1,
+MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook,
     (struct usbd_device *udev, struct usb_device_info_old * addr, int usedev,
       void (*fill_devinfo_vp)(struct usbd_device *, char *, size_t, char *,
 	size_t, int, int), int (*printBCD)(char *, size_t, int)));
@@ -1842,7 +1842,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
 				     (struct usb_device_info *)addr, 0);
 		break;
 	case USB_GET_DEVICEINFO_OLD:
-		if (usb_subr_30_hook_f1_call(sc->sc_udev,
+		if (usb_subr_30_fill_hook_call(sc->sc_udev,
 			     (struct usb_device_info_old *)addr, 0,
 			     usbd_devinfo_vp, usbd_printBCD) == 0)
 			return 0;

Index: src/sys/dev/usb/uhid.c
diff -u src/sys/dev/usb/uhid.c:1.101.2.5 src/sys/dev/usb/uhid.c:1.101.2.6
--- src/sys/dev/usb/uhid.c:1.101.2.5	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/usb/uhid.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhid.c,v 1.101.2.5 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: uhid.c,v 1.101.2.6 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2008, 2012 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.101.2.5 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.101.2.6 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -513,7 +513,7 @@ uhidwrite(dev_t dev, struct uio *uio, in
 	return error;
 }
 
-MODULE_CALL_HOOK_DECL(usb_subr_30_hook, f1,
+MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook,
     (struct usbd_device *udev, struct usb_device_info_old * addr, int usedev,
       void (*fill_devinfo_vp)(struct usbd_device *, char *, size_t, char *,
 	size_t, int, int), int (*printBCD)(char *, size_t, int)));
@@ -659,7 +659,7 @@ uhid_do_ioctl(struct uhid_softc *sc, u_l
 				     (struct usb_device_info *)addr, 0);
 		break;
 	case USB_GET_DEVICEINFO_OLD:
-		err = usb_subr_30_hook_f1_call( sc->sc_hdev.sc_parent->sc_udev,
+		err = usb_subr_30_fill_hook_call( sc->sc_hdev.sc_parent->sc_udev,
 			    (struct usb_device_info_old *)addr, 0,
 			    usbd_devinfo_vp, usbd_printBCD);
 		if (err == 0)

Index: src/sys/dev/usb/usb.c
diff -u src/sys/dev/usb/usb.c:1.168.2.7 src/sys/dev/usb/usb.c:1.168.2.8
--- src/sys/dev/usb/usb.c:1.168.2.7	Sun Sep 30 01:45:51 2018
+++ src/sys/dev/usb/usb.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: usb.c,v 1.168.2.7 2018/09/30 01:45:51 pgoyette Exp $	*/
+/*	$NetBSD: usb.c,v 1.168.2.8 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.168.2.7 2018/09/30 01:45:51 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.168.2.8 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -656,10 +656,10 @@ usbopen(dev_t dev, int flag, int mode, s
 	return 0;
 }
 
-/* Call hook for usbd30_fill_device_info_old() */
-MODULE_CALL_HOOK_DECL(usb_subr_30_hook, f2,
+/* Call the hook for usb30_copy_to_old() */
+MODULE_CALL_HOOK_DECL(usb_subr_30_copy_hook,
     (struct usb_event *ue, struct usb_event_old *ueo, struct uio *uio));
-MODULE_CALL_HOOK(usb_subr_30_hook, f2,
+MODULE_CALL_HOOK(usb_subr_30_copy_hook,
     (struct usb_event *ue, struct usb_event_old *ueo, struct uio *uio),
     (ue, ueo, uio), enosys());
 
@@ -703,7 +703,7 @@ usbread(dev_t dev, struct uio *uio, int 
 	mutex_exit(&usb_event_lock);
 	if (!error) {
 		if (useold) { /* copy fields to old struct */
-			error = usb_subr_30_hook_f2_call(ue, ueo, uio);
+			error = usb_subr_30_copy_hook_call(ue, ueo, uio);
 			if (error == ENOSYS)
 				error = EINVAL;
 
@@ -735,12 +735,12 @@ usbclose(dev_t dev, int flag, int mode,
 	return 0;
 }
 
-/* Call the hook for usb30_copy_to_old() */
-MODULE_CALL_HOOK_DECL(usb_subr_30_hook, f1,
+/* Call hook for usbd30_fill_device_info_old() */
+MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook,
     (struct usbd_device *udev, struct usb_device_info_old * addr, int usedev,
       void (*fill_devinfo_vp)(struct usbd_device *, char *, size_t, char *,
 	size_t, int, int), int (*printBCD)(char *, size_t, int)));
-MODULE_CALL_HOOK(usb_subr_30_hook, f1,
+MODULE_CALL_HOOK(usb_subr_30_fill_hook,
     (struct usbd_device *udev, struct usb_device_info_old * addr, int usedev,
       void (*fill_devinfo_vp)(struct usbd_device *, char *, size_t, char *,
 	size_t, int, int), int (*printBCD)(char *, size_t, int)),
@@ -895,7 +895,7 @@ usbioctl(dev_t devt, u_long cmd, void *d
 			error = ENXIO;
 			goto fail;
 		}
-		error = usb_subr_30_hook_f1_call(dev, di, 1,
+		error = usb_subr_30_fill_hook_call(dev, di, 1,
 				usbd_devinfo_vp, usbd_printBCD);
 		if (error == ENOSYS)
 			error = EINVAL;

Index: src/sys/dev/wscons/wsevent.c
diff -u src/sys/dev/wscons/wsevent.c:1.37.2.6 src/sys/dev/wscons/wsevent.c:1.37.2.7
--- src/sys/dev/wscons/wsevent.c:1.37.2.6	Sat Sep 29 21:36:14 2018
+++ src/sys/dev/wscons/wsevent.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: wsevent.c,v 1.37.2.6 2018/09/29 21:36:14 pgoyette Exp $ */
+/* $NetBSD: wsevent.c,v 1.37.2.7 2019/01/13 10:49:50 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 2006, 2008 The NetBSD Foundation, Inc.
@@ -104,7 +104,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsevent.c,v 1.37.2.6 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsevent.c,v 1.37.2.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -189,9 +189,9 @@ wsevent_fini(struct wseventvar *ev)
 	softint_disestablish(ev->sih);
 }
 
-MODULE_CALL_HOOK_DECL(wsevent_50_copyout_events_hook, f,
+MODULE_CALL_HOOK_DECL(wsevent_50_copyout_events_hook,
     (const struct wscons_event *events, int cnt, struct uio *uio));
-MODULE_CALL_HOOK(wsevent_50_copyout_events_hook, f,
+MODULE_CALL_HOOK(wsevent_50_copyout_events_hook,
     (const struct wscons_event *events, int cnt, struct uio *uio),
     (events, cnt, uio), enosys());
 
@@ -203,7 +203,7 @@ wsevent_copyout_events(const struct wsco
 
 	switch (ver) {
 	case 0:
-		error = wsevent_50_copyout_events_hook_f_call(events, cnt, uio);
+		error = wsevent_50_copyout_events_hook_call(events, cnt, uio);
 		if (error == ENOSYS)
 			error = EINVAL;
 		return error;

Index: src/sys/fs/puffs/puffs_compat.c
diff -u src/sys/fs/puffs/puffs_compat.c:1.4.16.3 src/sys/fs/puffs/puffs_compat.c:1.4.16.4
--- src/sys/fs/puffs/puffs_compat.c:1.4.16.3	Tue Sep 18 23:03:55 2018
+++ src/sys/fs/puffs/puffs_compat.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_compat.c,v 1.4.16.3 2018/09/18 23:03:55 pgoyette Exp $	*/
+/*	$NetBSD: puffs_compat.c,v 1.4.16.4 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_compat.c,v 1.4.16.3 2018/09/18 23:03:55 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_compat.c,v 1.4.16.4 2019/01/13 10:49:50 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -437,18 +437,21 @@ puffs_compat_incoming(struct puffs_req *
 	return 0;
 }
 
-MODULE_SET_HOOK2(puffs50_compat_hook, "pffs50", puffs_compat_outgoing,
-    puffs_compat_incoming);
-MODULE_UNSET_HOOK2(puffs50_compat_hook);
+MODULE_SET_HOOK(puffs_50_out_hook, "pffs50", puffs_compat_outgoing);
+MODULE_SET_HOOK(puffs_50_in_hook, "pffs50", puffs_compat_incoming);
+MODULE_UNSET_HOOK(puffs_50_out_hook);
+MODULE_UNSET_HOOK(puffs_50_in_hook);
 
 void puffs_50_init(void)
 {
 
-	puffs50_compat_hook_set();
+	puffs_50_out_hook_set();
+	puffs_50_in_hook_set();
 }
 
 void puffs_50_fini(void)
 {
 
-	puffs50_compat_hook_unset();
+	puffs_50_out_hook_unset();
+	puffs_50_in_hook_unset();
 }

Index: src/sys/fs/puffs/puffs_msgif.c
diff -u src/sys/fs/puffs/puffs_msgif.c:1.101.10.6 src/sys/fs/puffs/puffs_msgif.c:1.101.10.7
--- src/sys/fs/puffs/puffs_msgif.c:1.101.10.6	Sat Sep 29 21:36:14 2018
+++ src/sys/fs/puffs/puffs_msgif.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_msgif.c,v 1.101.10.6 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: puffs_msgif.c,v 1.101.10.7 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.101.10.6 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.101.10.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -325,16 +325,16 @@ puffs_getmsgid(struct puffs_mount *pmp)
 
 /* Routines to call the compat hooks */
 	/* Out-going */
-MODULE_CALL_HOOK_DECL(puffs50_compat_hook, f1,
+MODULE_CALL_HOOK_DECL(puffs_50_out_hook,
      (struct puffs_req *oreq, struct puffs_req **creqp, ssize_t *deltap));
-MODULE_CALL_HOOK(puffs50_compat_hook, f1,
+MODULE_CALL_HOOK(puffs_50_out_hook,
      (struct puffs_req *oreq, struct puffs_req **creqp, ssize_t *deltap),
      (oreq, creqp, deltap), enosys());
 
 	/* Incoming */
-MODULE_CALL_HOOK_DECL(puffs50_compat_hook, f2,
+MODULE_CALL_HOOK_DECL(puffs_50_in_hook,
      (struct puffs_req *oreq, struct puffs_req *creqp));
-MODULE_CALL_HOOK(puffs50_compat_hook, f2,
+MODULE_CALL_HOOK(puffs_50_in_hook,
      (struct puffs_req *oreq, struct puffs_req *creqp),
      (oreq, creqp), enosys());
 
@@ -365,7 +365,7 @@ puffs_msg_enqueue(struct puffs_mount *pm
 #if 1
 	/* check if we do compat adjustments */
 	if (pmp->pmp_docompat &&
-	    puffs50_compat_hook_f1_call(preq, &creq, &delta) == 0) {
+	    puffs_50_out_hook_call(preq, &creq, &delta) == 0) {
 		park->park_creq = park->park_preq;
 		park->park_creqlen = park->park_maxlen;
 
@@ -822,7 +822,7 @@ puffsop_msg(void *ctx, struct puffs_req 
 			size_t csize;
 
 			KASSERT(pmp->pmp_docompat);
-			(void)puffs50_compat_hook_f2_call(preq,
+			(void)puffs_50_in_hook_call(preq,
 			    park->park_creq);
 			creq = park->park_creq;
 			csize = park->park_creqlen;

Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.1.2.33 src/sys/kern/compat_stub.c:1.1.2.34
--- src/sys/kern/compat_stub.c:1.1.2.33	Fri Jan 11 06:27:45 2019
+++ src/sys/kern/compat_stub.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.1.2.33 2019/01/11 06:27:45 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.c,v 1.1.2.34 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -62,7 +62,8 @@ void (*vec_ntp_adjtime1)(struct timex *)
 /*
  * usb device_info compatability
  */
-struct usb_subr_30_hook_t usb_subr_30_hook;
+struct usb_subr_30_fill_hook_t usb_subr_30_fill_hook;
+struct usb_subr_30_copy_hook_t usb_subr_30_copy_hook;
 
 /*
  * ccd device compatability ioctl
@@ -98,12 +99,15 @@ struct raidframe80_ioctl_hook_t raidfram
  * puffs compatability
  */
 
-struct puffs50_compat_hook_t puffs50_compat_hook;
+struct puffs_50_out_hook_t puffs_50_out_hook;
+struct puffs_50_in_hook_t puffs_50_in_hook;
 
+/* XXX
 int (*puffs50_compat_outgoing)(struct puffs_req *, struct puffs_req **,
     ssize_t *) = (void *)enosys;
 void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *) =
     (void *)voidop;
+   XXX */
 
 /*
  * wsevents compatability
@@ -134,7 +138,8 @@ struct ieee80211_ostats_hook_t ieee80211
 /*
  * if_43 compatability
  */
-struct if_43_hook_t if_43_hook;
+struct if_43_cvtcmd_hook_t if_43_cvtcmd_hook;
+struct if_43_ifioctl_hook_t if_43_ifioctl_hook;
 
 /*
  * if43_20 compatability
@@ -154,7 +159,8 @@ struct uipc_syscalls_50_hook_t uipc_sysc
 /*
  * rtsock 14 compatability
  */
-struct rtsock14_hook_t rtsock14_hook;
+struct rtsock_14_oifmsg_hook_t rtsock_14_oifmsg_hook;
+struct rtsock_14_iflist_hook_t rtsock_14_iflist_hook;
 
 /*
  * rtsock 50 compatability
@@ -164,7 +170,8 @@ struct rtsock_50_hook_t rtsock_50_hook;
 /*
  * rtsock 70 compatability
  */
-struct rtsock_70_hook_t rtsock_70_hook;
+struct rtsock_70_newaddr_hook_t rtsock_70_newaddr_hook;
+struct rtsock_70_iflist_hook_t rtsock_70_iflist_hook;
 
 /*
  * modctl handler for old style OSTAT
@@ -179,7 +186,8 @@ int kern_sig_43_pgid_mask = ~0;
 /*
  * hook for kern_proc_32
  */
-struct kern_proc_32_hook_t kern_proc_32_hook;
+struct kern_proc_32_copyin_hook_t kern_proc_32_copyin_hook;
+struct kern_proc_32_base_hook_t kern_proc_32_base_hook;
 
 /*
  * Hook for sparc fpu code to check if a process is running 
@@ -196,7 +204,8 @@ struct rnd_ioctl_50_32_hook_t rnd_ioctl_
 /* 
  * Hooks for compat_60 ttioctl and ptmioctl
  */
-struct compat_60_ioctl_hook_t compat_60_ioctl_hook;
+struct compat_60_ttioctl_hook_t compat_60_ttioctl_hook;
+struct compat_60_ptmioctl_hook_t compat_60_ptmioctl_hook;
 
 /*
  * Hook for compat_10 openat

Index: src/sys/kern/kern_proc.c
diff -u src/sys/kern/kern_proc.c:1.209.2.10 src/sys/kern/kern_proc.c:1.209.2.11
--- src/sys/kern/kern_proc.c:1.209.2.10	Wed Dec 26 14:02:03 2018
+++ src/sys/kern/kern_proc.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_proc.c,v 1.209.2.10 2018/12/26 14:02:03 pgoyette Exp $	*/
+/*	$NetBSD: kern_proc.c,v 1.209.2.11 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.209.2.10 2018/12/26 14:02:03 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.209.2.11 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_kstack.h"
@@ -1896,14 +1896,14 @@ sysctl_doeproc(SYSCTLFN_ARGS)
  * compat_netbsd32 hooks
  */
 #if !defined(_RUMPKERNEL)
-MODULE_CALL_HOOK_DECL(kern_proc_32_hook, f1,
+MODULE_CALL_HOOK_DECL(kern_proc_32_copyin_hook,
     (struct proc *p, struct ps_strings *s));
-MODULE_CALL_HOOK(kern_proc_32_hook, f1,
+MODULE_CALL_HOOK(kern_proc_32_copyin_hook,
     (struct proc *p, struct ps_strings *s), (p, s), enosys());
 
-MODULE_CALL_HOOK_DECL(kern_proc_32_hook, f2,
+MODULE_CALL_HOOK_DECL(kern_proc_32_base_hook,
     (char **argv, size_t i, vaddr_t *base));
-MODULE_CALL_HOOK(kern_proc_32_hook, f2,
+MODULE_CALL_HOOK(kern_proc_32_base_hook,
     (char **argv, size_t i, vaddr_t *base), (argv, i, base), enosys());
 #endif /* !defined(_RUMPKERNEL) */
 
@@ -1913,7 +1913,7 @@ copyin_psstrings(struct proc *p, struct 
 
 #if !defined(_RUMPKERNEL)
 	if (p->p_flag & PK_32)
-		return kern_proc_32_hook_f1_call(p, arginfo);
+		return kern_proc_32_copyin_hook_call(p, arginfo);
 #endif /* !defined(_RUMPKERNEL) */
 
 	return copyin_proc(p, (void *)p->p_psstrp, arginfo, sizeof(*arginfo));
@@ -2126,7 +2126,7 @@ copy_procargs(struct proc *p, int oid, s
 
 #if !defined(_RUMPKERNEL)
 		if (p->p_flag & PK_32)
-			(void)kern_proc_32_hook_f2_call(argv, i++, &base);
+			(void)kern_proc_32_base_hook_call(argv, i++, &base);
 		else
 #endif /* !defined(_RUMPKERNEL) */
 			base = (vaddr_t)argv[i++];

Index: src/sys/kern/kern_rndq.c
diff -u src/sys/kern/kern_rndq.c:1.89.16.4 src/sys/kern/kern_rndq.c:1.89.16.5
--- src/sys/kern/kern_rndq.c:1.89.16.4	Fri Oct 12 22:30:54 2018
+++ src/sys/kern/kern_rndq.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_rndq.c,v 1.89.16.4 2018/10/12 22:30:54 pgoyette Exp $	*/
+/*	$NetBSD: kern_rndq.c,v 1.89.16.5 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.89.16.4 2018/10/12 22:30:54 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.89.16.5 2019/01/13 10:49:50 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -1446,12 +1446,12 @@ krs_setflags(krndsource_t *kr, uint32_t 
 	}
 }
 
-MODULE_CALL_HOOK_DECL(rnd_ioctl_50_hook, f, (struct file *, u_long, void *));
-MODULE_CALL_HOOK_DECL(rnd_ioctl_50_32_hook, f, (struct file *, u_long, void *));
+MODULE_CALL_HOOK_DECL(rnd_ioctl_50_hook, (struct file *, u_long, void *));
+MODULE_CALL_HOOK_DECL(rnd_ioctl_50_32_hook, (struct file *, u_long, void *));
 
-MODULE_CALL_HOOK(rnd_ioctl_50_hook, f,
+MODULE_CALL_HOOK(rnd_ioctl_50_hook,
     (struct file *fp, u_long cmd, void *addr), (fp, cmd, addr), enosys());
-MODULE_CALL_HOOK(rnd_ioctl_50_32_hook, f,
+MODULE_CALL_HOOK(rnd_ioctl_50_32_hook,
     (struct file *fp, u_long cmd, void *addr), (fp, cmd, addr), enosys());
 
 int
@@ -1500,10 +1500,10 @@ rnd_system_ioctl(struct file *fp, u_long
 		break;
 
 	default:
-		ret = rnd_ioctl_50_hook_f_call(fp, cmd, addr);
+		ret = rnd_ioctl_50_hook_call(fp, cmd, addr);
 #if defined(_LP64)
 		if (ret == ENOSYS)
-			ret = rnd_ioctl_50_32_hook_f_call(fp, cmd, addr);
+			ret = rnd_ioctl_50_32_hook_call(fp, cmd, addr);
 #endif
 		if (ret == ENOSYS)
 			ret = ENOTTY;

Index: src/sys/kern/sys_module.c
diff -u src/sys/kern/sys_module.c:1.23.2.13 src/sys/kern/sys_module.c:1.23.2.14
--- src/sys/kern/sys_module.c:1.23.2.13	Sat Sep 29 21:36:14 2018
+++ src/sys/kern/sys_module.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_module.c,v 1.23.2.13 2018/09/29 21:36:14 pgoyette Exp $	*/
+/*	$NetBSD: sys_module.c,v 1.23.2.14 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_module.c,v 1.23.2.13 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_module.c,v 1.23.2.14 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_modular.h"
@@ -262,9 +262,9 @@ handle_modctl_stat(struct iovec *iov, vo
 }
 
 /* MODULE_HOOK glue for modstat_80 */
-MODULE_CALL_HOOK_DECL(compat_modstat_80_hook, f,
+MODULE_CALL_HOOK_DECL(compat_modstat_80_hook,
     (int cmd, struct iovec *iov, void *arg));
-MODULE_CALL_HOOK(compat_modstat_80_hook, f,
+MODULE_CALL_HOOK(compat_modstat_80_hook,
     (int cmd, struct iovec *iov, void *arg), (cmd, iov, arg), enosys());
 
 int
@@ -331,7 +331,7 @@ sys_modctl(struct lwp *l, const struct s
 		break;
 
 	default:
-		error = compat_modstat_80_hook_f_call(SCARG(uap, cmd),
+		error = compat_modstat_80_hook_call(SCARG(uap, cmd),
 		    &iov, arg);
 		if (error == ENOSYS)
 			error = EINVAL;

Index: src/sys/kern/sysv_ipc.c
diff -u src/sys/kern/sysv_ipc.c:1.32.16.6 src/sys/kern/sysv_ipc.c:1.32.16.7
--- src/sys/kern/sysv_ipc.c:1.32.16.6	Mon Oct 15 22:06:16 2018
+++ src/sys/kern/sysv_ipc.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysv_ipc.c,v 1.32.16.6 2018/10/15 22:06:16 pgoyette Exp $	*/
+/*	$NetBSD: sysv_ipc.c,v 1.32.16.7 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.32.16.6 2018/10/15 22:06:16 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.32.16.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_sysv.h"
@@ -347,8 +347,8 @@ stub_sysvipc50_sysctl(SYSCTLFN_ARGS)
 	return EPASSTHROUGH;
 }
 
-MODULE_CALL_HOOK_DECL(sysvipc50_sysctl_hook, f, (SYSCTLFN_PROTO));
-MODULE_CALL_HOOK(sysvipc50_sysctl_hook, f, (SYSCTLFN_ARGS),
+MODULE_CALL_HOOK_DECL(sysvipc50_sysctl_hook, (SYSCTLFN_PROTO));
+MODULE_CALL_HOOK(sysvipc50_sysctl_hook, (SYSCTLFN_ARGS),
     (SYSCTLFN_CALL(rnode)), stub_sysvipc50_sysctl(SYSCTLFN_CALL(rnode)));
 
 static int
@@ -377,7 +377,7 @@ sysctl_kern_sysvipc(SYSCTLFN_ARGS)
  * to the non-compat sysctl code.
  */
 
-	error = sysvipc50_sysctl_hook_f_call(SYSCTLFN_CALL(rnode));
+	error = sysvipc50_sysctl_hook_call(SYSCTLFN_CALL(rnode));
 	if (error != EPASSTHROUGH)
 		return error;
 

Index: src/sys/kern/tty.c
diff -u src/sys/kern/tty.c:1.275.2.5 src/sys/kern/tty.c:1.275.2.6
--- src/sys/kern/tty.c:1.275.2.5	Mon Oct 15 09:51:33 2018
+++ src/sys/kern/tty.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty.c,v 1.275.2.5 2018/10/15 09:51:33 pgoyette Exp $	*/
+/*	$NetBSD: tty.c,v 1.275.2.6 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.275.2.5 2018/10/15 09:51:33 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.275.2.6 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -921,9 +921,9 @@ ttyoutput(int c, struct tty *tp)
 /*
  * MODULE_HOOK glue for compat_60_ttioctl
  */
-MODULE_CALL_HOOK_DECL(compat_60_ioctl_hook, f1, 
+MODULE_CALL_HOOK_DECL(compat_60_ttioctl_hook,
     (dev_t, u_long, void *, int, struct lwp *));
-MODULE_CALL_HOOK(compat_60_ioctl_hook, f1, 
+MODULE_CALL_HOOK(compat_60_ttioctl_hook,
     (dev_t dev, u_long cmd, void *data, int flag, struct lwp *l),
     (dev, cmd, data, flag, l), enosys());
     
@@ -1422,7 +1422,7 @@ ttioctl(struct tty *tp, u_long cmd, void
 		/* We may have to load the compat_60 module for this. */
 		for (;;) {
 			rw_enter(&ttcompat_lock, RW_READER);
-			error = compat_60_ioctl_hook_f1_call(tp->t_dev, cmd,
+			error = compat_60_ttioctl_hook_call(tp->t_dev, cmd,
 			    data, flag, l);
 			if (error != ENOSYS) {
 				break;
@@ -1430,7 +1430,7 @@ ttioctl(struct tty *tp, u_long cmd, void
 			rw_exit(&ttcompat_lock);
 			(void)module_autoload("compat_60", MODULE_CLASS_EXEC);
 			rw_enter(&ttcompat_lock, RW_READER);
-			error = compat_60_ioctl_hook_f1_call(tp->t_dev, cmd,
+			error = compat_60_ttioctl_hook_call(tp->t_dev, cmd,
 			    data, flag, l);
 			if (error == ENOSYS) {
 				rw_exit(&ttcompat_lock);

Index: src/sys/kern/tty_ptm.c
diff -u src/sys/kern/tty_ptm.c:1.37.16.2 src/sys/kern/tty_ptm.c:1.37.16.3
--- src/sys/kern/tty_ptm.c:1.37.16.2	Mon Oct 15 09:51:34 2018
+++ src/sys/kern/tty_ptm.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty_ptm.c,v 1.37.16.2 2018/10/15 09:51:34 pgoyette Exp $	*/
+/*	$NetBSD: tty_ptm.c,v 1.37.16.3 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 1.37.16.2 2018/10/15 09:51:34 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 1.37.16.3 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -385,9 +385,9 @@ stub_compat_ptmioctl_60(dev_t dev, u_lon
         return EPASSTHROUGH;
 }
 
-MODULE_CALL_HOOK_DECL(compat_60_ioctl_hook, f2,
+MODULE_CALL_HOOK_DECL(compat_60_ptmioctl_hook,
     (dev_t, u_long, void *, int, struct lwp *));
-MODULE_CALL_HOOK(compat_60_ioctl_hook, f2,
+MODULE_CALL_HOOK(compat_60_ptmioctl_hook,
     (dev_t dev, u_long cmd, void *data, int flag, struct lwp *l),
     (dev, cmd, data, flag, l), enosys());
 
@@ -421,7 +421,7 @@ ptmioctl(dev_t dev, u_long cmd, void *da
 			goto bad2;
 		return 0;
 	default:
-		error = compat_60_ioctl_hook_f2_call(dev, cmd, data, flag, l);
+		error = compat_60_ptmioctl_hook_call(dev, cmd, data, flag, l);
 		if (error != EPASSTHROUGH)
 			return error;
 		DPRINTF(("ptmioctl EINVAL\n"));

Index: src/sys/kern/uipc_usrreq.c
diff -u src/sys/kern/uipc_usrreq.c:1.183.2.6 src/sys/kern/uipc_usrreq.c:1.183.2.7
--- src/sys/kern/uipc_usrreq.c:1.183.2.6	Mon Nov 26 01:52:50 2018
+++ src/sys/kern/uipc_usrreq.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: uipc_usrreq.c,v 1.183.2.6 2018/11/26 01:52:50 pgoyette Exp $	*/
+/*	$NetBSD: uipc_usrreq.c,v 1.183.2.7 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc.
@@ -96,7 +96,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_usrreq.c,v 1.183.2.6 2018/11/26 01:52:50 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_usrreq.c,v 1.183.2.7 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -331,9 +331,9 @@ unp_free(struct unpcb *unp)
 	kmem_free(unp, sizeof(*unp));
 }
 
-MODULE_CALL_HOOK_DECL(compat_70_unp_hook, f,
+MODULE_CALL_HOOK_DECL(compat_70_unp_hook,
     (struct mbuf **, struct lwp *, struct mbuf *));
-MODULE_CALL_HOOK(compat_70_unp_hook, f,
+MODULE_CALL_HOOK(compat_70_unp_hook,
     (struct mbuf **ret, struct lwp *lwp, struct mbuf *control),
     (ret, lwp, control), stub_compat_70_unp_addsockcred(ret, lwp, control));
 
@@ -357,7 +357,7 @@ unp_output(struct mbuf *m, struct mbuf *
 	if (unp->unp_conn->unp_flags & UNP_WANTCRED)
 		control = unp_addsockcred(curlwp, control);
 	if (unp->unp_conn->unp_flags & UNP_OWANTCRED)
-		compat_70_unp_hook_f_call(&control, curlwp, control);
+		compat_70_unp_hook_call(&control, curlwp, control);
 	if (sbappendaddr(&so2->so_rcv, (const struct sockaddr *)sun, m,
 	    control) == 0) {
 		unp_dispose(control);
@@ -538,7 +538,7 @@ unp_send(struct socket *so, struct mbuf 
 			 * SOCK_STREAM and SOCK_SEQPACKET.
 			 */
 			unp->unp_conn->unp_flags &= ~UNP_OWANTCRED;
-			compat_70_unp_hook_f_call(&control, curlwp, control);
+			compat_70_unp_hook_call(&control, curlwp, control);
 		}
 		/*
 		 * Send to paired receive port, and then reduce

Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.518.2.2 src/sys/kern/vfs_syscalls.c:1.518.2.3
--- src/sys/kern/vfs_syscalls.c:1.518.2.2	Mon Oct 15 10:44:27 2018
+++ src/sys/kern/vfs_syscalls.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls.c,v 1.518.2.2 2018/10/15 10:44:27 pgoyette Exp $	*/
+/*	$NetBSD: vfs_syscalls.c,v 1.518.2.3 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.518.2.2 2018/10/15 10:44:27 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.518.2.3 2019/01/13 10:49:50 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_fileassoc.h"
@@ -1635,8 +1635,8 @@ stub_sys_openat_10(struct pathbuf **pb)
 	return 0;
 }
 
-MODULE_CALL_HOOK_DECL(compat_10_openat_hook, f, (struct pathbuf **));
-MODULE_CALL_HOOK(compat_10_openat_hook, f, (struct pathbuf **pb), (pb),
+MODULE_CALL_HOOK_DECL(compat_10_openat_hook, (struct pathbuf **));
+MODULE_CALL_HOOK(compat_10_openat_hook, (struct pathbuf **pb), (pb),
     stub_sys_openat_10(pb));
 
 static int
@@ -1649,7 +1649,7 @@ do_sys_openat(lwp_t *l, int fdat, const 
 	int error;
 
 	if (path == NULL) {
-		error = compat_10_openat_hook_f_call(&pb);
+		error = compat_10_openat_hook_call(&pb);
 		if (error)
 			return error;
 	} else {

Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.419.2.18 src/sys/net/if.c:1.419.2.19
--- src/sys/net/if.c:1.419.2.18	Wed Dec 26 14:02:04 2018
+++ src/sys/net/if.c	Sun Jan 13 10:49:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: if.c,v 1.419.2.18 2018/12/26 14:02:04 pgoyette Exp $	*/
+/*	$NetBSD: if.c,v 1.419.2.19 2019/01/13 10:49:50 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.419.2.18 2018/12/26 14:02:04 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.419.2.19 2019/01/13 10:49:50 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -3120,24 +3120,24 @@ out:
 /*
  * Interface for calling the compat routines
  */
-MODULE_CALL_HOOK_DECL(uipc_syscalls_40_hook, f,
+MODULE_CALL_HOOK_DECL(uipc_syscalls_40_hook,
     (struct lwp *l, int cmd, void *data));
-MODULE_CALL_HOOK(uipc_syscalls_40_hook, f,
+MODULE_CALL_HOOK(uipc_syscalls_40_hook,
     (struct lwp *l, int cmd, void *data), (cmd, data), enosys());
 
-MODULE_CALL_HOOK_DECL(uipc_syscalls_50_hook, f,
+MODULE_CALL_HOOK_DECL(uipc_syscalls_50_hook,
     (struct lwp *l, int cmd, void *data));
-MODULE_CALL_HOOK(uipc_syscalls_50_hook, f,
+MODULE_CALL_HOOK(uipc_syscalls_50_hook,
     (struct lwp *l, int cmd, void *data), (l, cmd, data), enosys());
 
-MODULE_CALL_HOOK_DECL(if_43_hook, f1,
+MODULE_CALL_HOOK_DECL(if_43_cvtcmd_hook,
     (u_long *ncmd, u_long ocmd));
-MODULE_CALL_HOOK(if_43_hook, f1,
+MODULE_CALL_HOOK(if_43_cvtcmd_hook,
     (u_long *ncmd, u_long ocmd), (ncmd, ocmd), enosys());
 
-MODULE_CALL_HOOK_DECL(if_43_hook, f2,
+MODULE_CALL_HOOK_DECL(if_43_ifioctl_hook,
     (struct socket *so, u_long ocmd, u_long cmd, void *data, struct lwp *l));
-MODULE_CALL_HOOK(if_43_hook, f2,
+MODULE_CALL_HOOK(if_43_ifioctl_hook,
     (struct socket *so, u_long ocmd, u_long cmd, void *data, struct lwp *l),
     (so, ocmd, cmd, data, l), enosys());
 
@@ -3164,10 +3164,10 @@ doifioctl(struct socket *so, u_long cmd,
 	case SIOCINITIFADDR:
 		return EPERM;
 	default:
-		error = uipc_syscalls_40_hook_f_call(l, cmd, data);
+		error = uipc_syscalls_40_hook_call(l, cmd, data);
 		if (error != ENOSYS)
 			return error;
-		error = uipc_syscalls_50_hook_f_call(l, cmd, data);
+		error = uipc_syscalls_50_hook_call(l, cmd, data);
 		if (error != ENOSYS)
 			return error;
 		error = 0;
@@ -3175,7 +3175,7 @@ doifioctl(struct socket *so, u_long cmd,
 	}
 
 	ifr = data;
-	if (if_43_hook_f1_call(&cmd, ocmd) != ENOSYS) {
+	if (if_43_cvtcmd_hook_call(&cmd, ocmd) != ENOSYS) {
 		if (cmd != ocmd) {
 			oifr = data;
 			data = ifr = &ifrb;
@@ -3275,7 +3275,7 @@ doifioctl(struct socket *so, u_long cmd,
 		error = EOPNOTSUPP;
 	else {
 		KERNEL_LOCK_IF_IFP_MPSAFE(ifp);
-		error = if_43_hook_f2_call(so, ocmd, cmd, data, l);
+		error = if_43_ifioctl_hook_call(so, ocmd, cmd, data, l);
 		if (error == ENOSYS)
 			error = (*so->so_proto->pr_usrreqs->pr_ioctl)(so,
 			    cmd, data, ifp);
@@ -3429,7 +3429,7 @@ ifreq_setaddr(u_long cmd, struct ifreq *
 	struct oifreq *oifr = NULL;
 	u_long ocmd = cmd;
 
-	if (if_43_hook_f1_call(&cmd, ocmd) != ENOSYS) {
+	if (if_43_cvtcmd_hook_call(&cmd, ocmd) != ENOSYS) {
 		if (cmd != ocmd) {
 			oifr = (struct oifreq *)(void *)ifr;
 			ifr = &ifrb;

Index: src/sys/net/if_spppsubr.c
diff -u src/sys/net/if_spppsubr.c:1.179.2.7 src/sys/net/if_spppsubr.c:1.179.2.8
--- src/sys/net/if_spppsubr.c:1.179.2.7	Sat Sep 29 21:36:14 2018
+++ src/sys/net/if_spppsubr.c	Sun Jan 13 10:49:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_spppsubr.c,v 1.179.2.7 2018/09/29 21:36:14 pgoyette Exp $	 */
+/*	$NetBSD: if_spppsubr.c,v 1.179.2.8 2019/01/13 10:49:51 pgoyette Exp $	 */
 
 /*
  * Synchronous PPP/Cisco link level subroutines.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.179.2.7 2018/09/29 21:36:14 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.179.2.8 2019/01/13 10:49:51 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -5612,9 +5612,9 @@ sppp_suggest_ip6_addr(struct sppp *sp, s
 #endif /*INET6*/
 
 /* Hook the sppp_params50 compat code */
-MODULE_CALL_HOOK_DECL(sppp_params_50_hook, f,
+MODULE_CALL_HOOK_DECL(sppp_params_50_hook,
     (struct sppp *sp, u_long cmd, void *data));
-MODULE_CALL_HOOK(sppp_params_50_hook, f,
+MODULE_CALL_HOOK(sppp_params_50_hook,
     (struct sppp *sp, u_long cmd, void *data), (sp, cmd, data), enosys());
 
 /*
@@ -5922,7 +5922,7 @@ sppp_params(struct sppp *sp, u_long cmd,
 	    {
 		int ret;
 
-		ret = sppp_params_50_hook_f_call(sp, cmd, data);
+		ret = sppp_params_50_hook_call(sp, cmd, data);
 		if (ret != ENOSYS)
 			return ret;
 		return (EINVAL);

Index: src/sys/net/rtsock.c
diff -u src/sys/net/rtsock.c:1.238.2.16 src/sys/net/rtsock.c:1.238.2.17
--- src/sys/net/rtsock.c:1.238.2.16	Sun Jan 13 07:05:10 2019
+++ src/sys/net/rtsock.c	Sun Jan 13 10:49:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtsock.c,v 1.238.2.16 2019/01/13 07:05:10 pgoyette Exp $	*/
+/*	$NetBSD: rtsock.c,v 1.238.2.17 2019/01/13 10:49:51 pgoyette Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.238.2.16 2019/01/13 07:05:10 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.238.2.17 2019/01/13 10:49:51 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1369,18 +1369,18 @@ COMPATNAME(rt_missmsg)(int type, const s
 }
 
 /*
- * MODULE_HOOK glue for rtsock14_oifmsg and rtsock14_iflist
+ * MODULE_HOOK glue for rtsock_14_oifmsg and rtsock_14_iflist
  */
-MODULE_CALL_HOOK_DECL(rtsock14_hook, f1, (struct ifnet *ifp));
+MODULE_CALL_HOOK_DECL(rtsock_14_oifmsg_hook, (struct ifnet *ifp));
 #ifndef COMPAT_RTSOCK
-MODULE_CALL_HOOK(rtsock14_hook, f1, (struct ifnet *ifp), (ifp), enosys());
+MODULE_CALL_HOOK(rtsock_14_oifmsg_hook, (struct ifnet *ifp), (ifp), enosys());
 #endif
 
-MODULE_CALL_HOOK_DECL(rtsock14_hook, f2,
+MODULE_CALL_HOOK_DECL(rtsock_14_iflist_hook,
     (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
      size_t len));
 #ifndef COMPAT_RTSOCK
-MODULE_CALL_HOOK(rtsock14_hook, f2,
+MODULE_CALL_HOOK(rtsock_14_iflist_hook,
     (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
      size_t len),
     (ifp, w, info, len),
@@ -1390,11 +1390,11 @@ MODULE_CALL_HOOK(rtsock14_hook, f2,
 /*
  * MODULE_HOOK glue for rtsock50_ifaddr_listif
  */
-MODULE_CALL_HOOK_DECL(rtsock_50_hook, f,
+MODULE_CALL_HOOK_DECL(rtsock_50_hook,
     (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info, 
      size_t len));
 #ifndef COMPAT_RTSOCK 
-MODULE_CALL_HOOK(rtsock_50_hook, f, 
+MODULE_CALL_HOOK(rtsock_50_hook, 
     (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
      size_t len),               
     (ifp, w, info, len),
@@ -1406,16 +1406,16 @@ MODULE_CALL_HOOK(rtsock_50_hook, f, 
  * MODULE_HOOK glue for rtsock70_newaddrmsg1, rtsock70_ifaddr_listaddr,
  * and rtsock70_ifaddr_listif
  */
-MODULE_CALL_HOOK_DECL(rtsock_70_hook, f1, (int, struct ifaddr *));
+MODULE_CALL_HOOK_DECL(rtsock_70_newaddr_hook, (int, struct ifaddr *));
 #ifndef COMPAT_RTSOCK
-MODULE_CALL_HOOK(rtsock_70_hook, f1, (int cmd, struct ifaddr *ifa),
+MODULE_CALL_HOOK(rtsock_70_newaddr_hook, (int cmd, struct ifaddr *ifa),
     (cmd, ifa), stub_70_rt_newaddrmsg1(cmd, ifa));
 #endif
 
-MODULE_CALL_HOOK_DECL(rtsock_70_hook, f2,
+MODULE_CALL_HOOK_DECL(rtsock_70_iflist_hook,
     (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
 #ifndef COMPAT_RTSOCK
-MODULE_CALL_HOOK(rtsock_70_hook, f2,
+MODULE_CALL_HOOK(rtsock_70_iflist_hook,
     (struct rt_walkarg *w, struct ifaddr *ifa, struct rt_addrinfo *info),
     (w, ifa, info), 
     enosys());
@@ -1445,7 +1445,7 @@ COMPATNAME(rt_ifmsg)(struct ifnet *ifp)
 	if (m == NULL)
 		return;
 	COMPATNAME(route_enqueue)(m, 0);
-	(void)rtsock14_hook_f1_call(ifp);
+	(void)rtsock_14_oifmsg_hook_call(ifp);
 #ifdef COMPAT_50
 	compat_50_rt_oifmsg(ifp);
 #endif
@@ -1538,7 +1538,7 @@ COMPATNAME(rt_newaddrmsg)(int cmd, struc
 			default:
 				panic("%s: unknown command %d", __func__, cmd);
 			}
-			rtsock_70_hook_f1_call(ncmd, ifa);
+			rtsock_70_newaddr_hook_call(ncmd, ifa);
 			info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr;
 			KASSERT(ifp->if_dl != NULL);
 			info.rti_info[RTAX_IFP] = ifp->if_dl->ifa_addr;
@@ -1979,7 +1979,7 @@ sysctl_iflist(int af, struct rt_walkarg 
 		if (w->w_where && w->w_tmem && w->w_needed <= 0) {
 			switch (type) {
 			case NET_RT_OIFLIST: /* old _70 */
-				if (rtsock_70_hook.f1 == NULL) {
+				if (!rtsock_70_iflist_hook.hooked) {
 					error = EINVAL;
 					break;
 				}
@@ -1988,12 +1988,12 @@ sysctl_iflist(int af, struct rt_walkarg 
 				error = sysctl_iflist_if(ifp, w, &info, len);
 				break;
 			case NET_RT_OOIFLIST: /* old _50 */
-				error = rtsock_50_hook_f_call(ifp, w, &info,
+				error = rtsock_50_hook_call(ifp, w, &info,
 				    len);
 				break;
 			case NET_RT_OOOIFLIST: /* old _14 */
-				error = rtsock14_hook_f2_call(ifp, w, &info,
-				    len);
+				error = rtsock_14_iflist_hook_call(ifp, w,
+				    &info, len);
 				break;
 			default:
 				error = EINVAL;
@@ -2022,7 +2022,8 @@ sysctl_iflist(int af, struct rt_walkarg 
 			case NET_RT_OIFLIST:
 			case NET_RT_OOIFLIST:
 			case NET_RT_OOOIFLIST:
-				error = rtsock_70_hook_f2_call(w, ifa, &info);
+				error = rtsock_70_iflist_hook_call(w, ifa,
+				    &info);
 				break;
 			default:
 				error = EINVAL;

Index: src/sys/net80211/ieee80211_ioctl.c
diff -u src/sys/net80211/ieee80211_ioctl.c:1.60.16.4 src/sys/net80211/ieee80211_ioctl.c:1.60.16.5
--- src/sys/net80211/ieee80211_ioctl.c:1.60.16.4	Sat Sep 29 21:36:15 2018
+++ src/sys/net80211/ieee80211_ioctl.c	Sun Jan 13 10:49:51 2019
@@ -36,7 +36,7 @@
 __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.35 2005/08/30 14:27:47 avatar Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: ieee80211_ioctl.c,v 1.60.16.4 2018/09/29 21:36:15 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_ioctl.c,v 1.60.16.5 2019/01/13 10:49:51 pgoyette Exp $");
 #endif
 
 /*
@@ -2559,9 +2559,9 @@ ieee80211_ioctl(struct ieee80211com *ic,
 /*
  * Compatability glue
  */
-MODULE_CALL_HOOK_DECL(ieee80211_ostats_hook, f,
+MODULE_CALL_HOOK_DECL(ieee80211_ostats_hook,
     (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats));
-MODULE_CALL_HOOK(ieee80211_ostats_hook, f,
+MODULE_CALL_HOOK(ieee80211_ostats_hook,
     (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats),
     (ostats, stats), enosys());
 
@@ -2864,7 +2864,7 @@ ieee80211_ioctl(struct ieee80211com *ic,
 
 		ifr = (struct ifreq *)data;
 		s = splnet();
-		error = ieee80211_ostats_hook_f_call(&ostats, &ic->ic_stats);
+		error = ieee80211_ostats_hook_call(&ostats, &ic->ic_stats);
 		if (error == ENOSYS)
 			error = EINVAL;
 		if (error == 0)

Index: src/sys/opencrypto/cryptodev.c
diff -u src/sys/opencrypto/cryptodev.c:1.98.2.7 src/sys/opencrypto/cryptodev.c:1.98.2.8
--- src/sys/opencrypto/cryptodev.c:1.98.2.7	Sat Sep 29 21:36:15 2018
+++ src/sys/opencrypto/cryptodev.c	Sun Jan 13 10:49:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cryptodev.c,v 1.98.2.7 2018/09/29 21:36:15 pgoyette Exp $ */
+/*	$NetBSD: cryptodev.c,v 1.98.2.8 2019/01/13 10:49:51 pgoyette Exp $ */
 /*	$FreeBSD: src/sys/opencrypto/cryptodev.c,v 1.4.2.4 2003/06/03 00:09:02 sam Exp $	*/
 /*	$OpenBSD: cryptodev.c,v 1.53 2002/07/10 22:21:30 mickey Exp $	*/
 
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cryptodev.c,v 1.98.2.7 2018/09/29 21:36:15 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cryptodev.c,v 1.98.2.8 2019/01/13 10:49:51 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -227,9 +227,9 @@ cryptof_write(file_t *fp, off_t *poff,
  * kernel which doesn't contain the local stuff, so the compat
  * code cannot directly reference them as globals.
  */
-MODULE_CALL_HOOK_DECL(ocryptof_50_hook, f,
+MODULE_CALL_HOOK_DECL(ocryptof_50_hook,
     (struct file *fp, u_long cmd, void *data));
-MODULE_CALL_HOOK(ocryptof_50_hook, f,
+MODULE_CALL_HOOK(ocryptof_50_hook,
     (struct file *fp, u_long cmd, void *data), (fp, cmd, data), enosys());
 
 /* ARGSUSED */
@@ -453,7 +453,7 @@ reterr:
 		break;
 	default:
 		/* Check for backward compatible commands */
-		error = ocryptof_50_hook_f_call(fp, cmd, data);
+		error = ocryptof_50_hook_call(fp, cmd, data);
 		if (error == ENOSYS)
 			error = EINVAL;
 		return error;

Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.1.2.45 src/sys/sys/compat_stub.h:1.1.2.46
--- src/sys/sys/compat_stub.h:1.1.2.45	Fri Jan 11 06:27:45 2019
+++ src/sys/sys/compat_stub.h	Sun Jan 13 10:49:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.45 2019/01/11 06:27:45 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.h,v 1.1.2.46 2019/01/13 10:49:51 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -48,7 +48,11 @@ extern void (*vec_ntp_gettime)(struct nt
 extern int (*vec_ntp_timestatus)(void);
 extern void (*vec_ntp_adjtime1)(struct timex *);
 
-MODULE_HOOK2(ntp_gettime_hooks, (struct ntptimeval *), (void))
+/*
+MODULE_HOOK(ntp_gettime_hook, (struct ntptimeval *));
+MODULE_HOOK(ntp_timestatus_hook, (void);
+MODULE_HOOK(ntp_adjtime1_hook, (struct timex *));
+*/
 
 /*
  * usb devinfo compatability
@@ -59,10 +63,11 @@ struct usb_device_info_old;
 struct usb_event;
 struct usb_event_old;
 struct uio;
-MODULE_HOOK2(usb_subr_30_hook,
+MODULE_HOOK(usb_subr_30_fill_hook,
     (struct usbd_device *, struct usb_device_info_old *, int,
       void (*)(struct usbd_device *, char *, size_t, char *, size_t, int, int),
-      int (*)(char *, size_t, int)),
+      int (*)(char *, size_t, int)));
+MODULE_HOOK(usb_subr_30_copy_hook,
     (struct usb_event *, struct usb_event_old *, struct uio *));
 
 /*
@@ -113,8 +118,9 @@ MODULE_HOOK(raidframe80_ioctl_hook, (int
  */
 
 struct puffs_req;
-MODULE_HOOK2(puffs50_compat_hook,
-    (struct puffs_req *, struct puffs_req **, ssize_t *),	/* outgoing */
+MODULE_HOOK(puffs_50_out_hook,
+    (struct puffs_req *, struct puffs_req **, ssize_t *));	/* outgoing */
+MODULE_HOOK(puffs_50_in_hook,
     (struct puffs_req *, struct puffs_req *));			/* incoming */
 
 /*
@@ -170,8 +176,8 @@ MODULE_HOOK(ieee80211_ostats_hook, (stru
  */
 struct socket;
 
-MODULE_HOOK2(if_43_hook,
-    (u_long *, u_long),
+MODULE_HOOK(if_43_cvtcmd_hook, (u_long *, u_long));
+MODULE_HOOK(if_43_ifioctl_hook,
     (struct socket *, u_long, u_long, void *, struct lwp *));
 
 /*
@@ -197,7 +203,8 @@ MODULE_HOOK(uipc_syscalls_50_hook, (stru
 struct ifnet;
 struct rt_walkarg;
 struct rt_addrinfo;
-MODULE_HOOK2(rtsock14_hook, (struct ifnet *),
+MODULE_HOOK(rtsock_14_oifmsg_hook, (struct ifnet *));
+MODULE_HOOK(rtsock_14_iflist_hook,
     (struct ifnet *, struct rt_walkarg *, struct rt_addrinfo *, size_t));
 
 /*
@@ -211,7 +218,8 @@ MODULE_HOOK(rtsock_50_hook,
  * Hooks for rtsock_70
  */
 struct ifaddr;
-MODULE_HOOK2(rtsock_70_hook, (int, struct ifaddr *),
+MODULE_HOOK(rtsock_70_newaddr_hook, (int, struct ifaddr *));
+MODULE_HOOK(rtsock_70_iflist_hook,
     (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
 
 /*
@@ -229,8 +237,8 @@ extern int kern_sig_43_pgid_mask;
  * Hooks for kern_proc.c for netbsd32 compat
  */
 struct ps_strings;
-MODULE_HOOK2(kern_proc_32_hook, (struct proc *, struct ps_strings *),
-    (char **, size_t, vaddr_t *));
+MODULE_HOOK(kern_proc_32_copyin_hook, (struct proc *, struct ps_strings *));
+MODULE_HOOK(kern_proc_32_base_hook, (char **, size_t, vaddr_t *));
 
 /*
  * Hook to allow sparc fpu code to see if a process is using sunos
@@ -248,8 +256,8 @@ MODULE_HOOK(rnd_ioctl_50_32_hook, (struc
 /*
  * Hooks for compat_60 ttioctl and ptmioctl
  */
-MODULE_HOOK2(compat_60_ioctl_hook, (dev_t, u_long, void *, int, struct lwp *),
-    (dev_t, u_long, void *, int, struct lwp *));
+MODULE_HOOK(compat_60_ttioctl_hook, (dev_t, u_long, void *, int, struct lwp *));
+MODULE_HOOK(compat_60_ptmioctl_hook, (dev_t, u_long, void *, int, struct lwp *));
 
 /*
  * Hook for compat_10 openat

Index: src/sys/sys/module_hook.h
diff -u src/sys/sys/module_hook.h:1.1.2.8 src/sys/sys/module_hook.h:1.1.2.9
--- src/sys/sys/module_hook.h:1.1.2.8	Fri Jan 11 06:18:17 2019
+++ src/sys/sys/module_hook.h	Sun Jan 13 10:49:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: module_hook.h,v 1.1.2.8 2019/01/11 06:18:17 pgoyette Exp $	*/
+/* $NetBSD: module_hook.h,v 1.1.2.9 2019/01/13 10:49:51 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -55,17 +55,6 @@ extern struct hook ## _t {					\
 	int			(*f)args;			\
 } hook __cacheline_aligned;
 
-#define MODULE_HOOK2(hook, args1, args2)			\
-extern struct hook ## _t {					\
-	kmutex_t		mtx;				\
-	kcondvar_t		cv;				\
-	struct localcount	lc;				\
-	pserialize_t		psz;				\
-        bool			hooked;				\
-	int			(*f1)args1;			\
-	int			(*f2)args2;			\
-} hook __cacheline_aligned;
-
 #define MODULE_SET_HOOK(hook, waitchan, func)			\
 static void hook ## _set(void);					\
 static void hook ## _set(void)					\
@@ -86,27 +75,6 @@ static void hook ## _set(void)					\
 	hook.hooked = true;					\
 }
 
-#define MODULE_SET_HOOK2(hook, waitchan, func1, func2)		\
-static void hook ## _set(void);					\
-static void hook ## _set(void)					\
-{								\
-								\
-	KASSERT(!hook.hooked);					\
-								\
-	hook.psz = pserialize_create();				\
-	mutex_init(&hook.mtx, MUTEX_DEFAULT, IPL_NONE);		\
-	cv_init(&hook.cv, waitchan);				\
-	localcount_init(&hook.lc);				\
-	hook.f1 = func1;					\
-	hook.f2 = func2;					\
-								\
-	/* Make sure it's initialized before anyone uses it */	\
-	membar_producer();					\
-								\
-	/* Let them use it */					\
-	hook.hooked = true;					\
-}
-
 #define MODULE_UNSET_HOOK(hook)					\
 static void (hook ## _unset)(void);				\
 static void (hook ## _unset)(void)				\
@@ -136,42 +104,13 @@ static void (hook ## _unset)(void)				\
 	pserialize_destroy(hook.psz);				\
 }
 
-#define MODULE_UNSET_HOOK2(hook)				\
-static void (hook ## _unset)(void);				\
-static void (hook ## _unset)(void)				\
-{								\
-								\
-	KASSERT(kernconfig_is_held());				\
-	KASSERT(hook.hooked);					\
-	KASSERT(hook.f1);					\
-	KASSERT(hook.f2);					\
-								\
-	/* Grab the mutex */					\
-	mutex_enter(&hook.mtx);					\
-								\
-	/* Prevent new localcount_acquire calls.  */		\
-	hook.hooked = false;					\
-								\
-	/* Wait for existing localcount_acquire calls to drain.  */ \
-	pserialize_perform(hook.psz);				\
-								\
-	/* Wait for existing localcount references to drain.  */\
-	localcount_drain(&hook.lc, &hook.cv, &hook.mtx);	\
-								\
-	/* Release the mutex and clean up all resources */	\
-	mutex_exit(&hook.mtx);					\
-	localcount_fini(&hook.lc);				\
-	cv_destroy(&hook.cv);					\
-	mutex_destroy(&hook.mtx);				\
-	pserialize_destroy(hook.psz);				\
-}
-
-#define MODULE_CALL_HOOK_DECL(hook, which, decl)		\
+#define MODULE_CALL_HOOK_DECL(hook, decl)		\
 int								\
-hook ## _ ## which ## _call decl;
-#define MODULE_CALL_HOOK(hook, which, decl, args, default)	\
+hook ## _call decl;
+
+#define MODULE_CALL_HOOK(hook, decl, args, default)		\
 int								\
-hook ## _ ## which ## _call decl				\
+hook ## _call decl						\
 {								\
 	bool __hooked;						\
 	int __hook_error, __hook_s;				\
@@ -185,7 +124,7 @@ hook ## _ ## which ## _call decl				\
 	pserialize_read_exit(__hook_s);				\
 								\
 	if (__hooked) {						\
-		__hook_error = (*hook.which)args;		\
+		__hook_error = (*hook.f)args;			\
 		localcount_release(&hook.lc, &hook.cv,		\
 		    &hook.mtx);					\
 	} else {						\

Reply via email to