Module Name: src
Committed By: pgoyette
Date: Tue Jan 22 07:42:42 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
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_msgif.c
src/sys/kern [pgoyette-compat]: 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
rtsock_shared.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 tty.h
Log Message:
Convert the MODULE_{,VOID_}HOOK_CALL macros to do everything in-line
rather than defining an intermediate hook##call function. Almost
all of the hooks are called only once, and although we lose the
ability of doing things like
if (MODULE_HOOK_CALL(...) == 0) ...
we simplify things quite a bit. With this change, we no longer need
to have both declaration and definition macros, and the definition
no longer needs to have both prototype argument list and a "real"
argument list.
FWIW, the above if now needs to written as
int ret;
MODULE_HOOK_CALL(..., ret);
if (ret == 0) ...
with appropriate use of braces {}.
To generate a diff of this commit:
cvs rdiff -u -r1.115.2.15 -r1.115.2.16 \
src/sys/arch/amd64/amd64/netbsd32_machdep.c
cvs rdiff -u -r1.15.2.11 -r1.15.2.12 \
src/sys/arch/mips/mips/netbsd32_machdep.c
cvs rdiff -u -r1.27.46.4 -r1.27.46.5 src/sys/arch/sparc/fpu/fpu.c
cvs rdiff -u -r1.110.14.4 -r1.110.14.5 \
src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
cvs rdiff -u -r1.14.2.13 -r1.14.2.14 src/sys/compat/common/if_43.c
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/compat/netbsd32/netbsd32_kern_proc.c
cvs rdiff -u -r1.6.2.12 -r1.6.2.13 src/sys/compat/netbsd32/netbsd32_module.c
cvs rdiff -u -r1.13.16.8 -r1.13.16.9 src/sys/dev/bio.c
cvs rdiff -u -r1.175.2.11 -r1.175.2.12 src/sys/dev/ccd.c
cvs rdiff -u -r1.35.14.11 -r1.35.14.12 src/sys/dev/clockctl.c
cvs rdiff -u -r1.263.2.13 -r1.263.2.14 src/sys/dev/vnd.c
cvs rdiff -u -r1.356.2.10 -r1.356.2.11 src/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -u -r1.58.2.8 -r1.58.2.9 src/sys/dev/sysmon/sysmon_power.c
cvs rdiff -u -r1.139.2.9 -r1.139.2.10 src/sys/dev/usb/ugen.c
cvs rdiff -u -r1.101.2.8 -r1.101.2.9 src/sys/dev/usb/uhid.c
cvs rdiff -u -r1.168.2.10 -r1.168.2.11 src/sys/dev/usb/usb.c
cvs rdiff -u -r1.37.2.9 -r1.37.2.10 src/sys/dev/wscons/wsevent.c
cvs rdiff -u -r1.101.10.10 -r1.101.10.11 src/sys/fs/puffs/puffs_msgif.c
cvs rdiff -u -r1.209.2.14 -r1.209.2.15 src/sys/kern/kern_proc.c
cvs rdiff -u -r1.89.16.7 -r1.89.16.8 src/sys/kern/kern_rndq.c
cvs rdiff -u -r1.23.2.16 -r1.23.2.17 src/sys/kern/sys_module.c
cvs rdiff -u -r1.32.16.10 -r1.32.16.11 src/sys/kern/sysv_ipc.c
cvs rdiff -u -r1.275.2.8 -r1.275.2.9 src/sys/kern/tty.c
cvs rdiff -u -r1.37.16.5 -r1.37.16.6 src/sys/kern/tty_ptm.c
cvs rdiff -u -r1.183.2.9 -r1.183.2.10 src/sys/kern/uipc_usrreq.c
cvs rdiff -u -r1.518.2.5 -r1.518.2.6 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.419.2.21 -r1.419.2.22 src/sys/net/if.c
cvs rdiff -u -r1.179.2.10 -r1.179.2.11 src/sys/net/if_spppsubr.c
cvs rdiff -u -r1.238.2.24 -r1.238.2.25 src/sys/net/rtsock.c
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/net/rtsock_shared.c
cvs rdiff -u -r1.60.16.7 -r1.60.16.8 src/sys/net80211/ieee80211_ioctl.c
cvs rdiff -u -r1.98.2.10 -r1.98.2.11 src/sys/opencrypto/cryptodev.c
cvs rdiff -u -r1.1.2.51 -r1.1.2.52 src/sys/sys/compat_stub.h
cvs rdiff -u -r1.1.2.13 -r1.1.2.14 src/sys/sys/module_hook.h
cvs rdiff -u -r1.94.2.3 -r1.94.2.4 src/sys/sys/tty.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.15 src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.16
--- src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.15 Mon Jan 21 06:49:27 2019
+++ src/sys/arch/amd64/amd64/netbsd32_machdep.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_machdep.c,v 1.115.2.15 2019/01/21 06:49:27 pgoyette Exp $ */
+/* $NetBSD: netbsd32_machdep.c,v 1.115.2.16 2019/01/22 07:42:40 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.15 2019/01/21 06:49:27 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.115.2.16 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -275,17 +275,12 @@ netbsd32_sendsig_siginfo(const ksiginfo_
struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, void,
- (const ksiginfo_t *ksi, const sigset_t *mask));
-MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook,
- (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
- netbsd32_sendsig_siginfo(ksi, mask));
-
void
netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
{
- netbsd32_sendsig_hook_call(ksi, mask);
+ MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook, (ksi, mask),
+ netbsd32_sendsig_siginfo(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.11 src/sys/arch/mips/mips/netbsd32_machdep.c:1.15.2.12
--- src/sys/arch/mips/mips/netbsd32_machdep.c:1.15.2.11 Mon Jan 21 06:49:27 2019
+++ src/sys/arch/mips/mips/netbsd32_machdep.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_machdep.c,v 1.15.2.11 2019/01/21 06:49:27 pgoyette Exp $ */
+/* $NetBSD: netbsd32_machdep.c,v 1.15.2.12 2019/01/22 07:42:40 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.11 2019/01/21 06:49:27 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.15.2.12 2019/01/22 07:42:40 pgoyette Exp $");
#include "opt_compat_netbsd.h"
#include "opt_coredump.h"
@@ -309,17 +309,12 @@ cpu_coredump32(struct lwp *l, struct cor
struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, void,
- (const ksiginfo_t *ksi, const sigset_t *mask));
-MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook,
- (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
- netbsd32_sendsig_siginfo(ksi, mask));
-
void
netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
{
- netbsd32_sendsig_hook_call(ksi, mask);
+ MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook, (ksi, mask),
+ netbsd32_sendsig_siginfo(ksi, mask));
}
void
Index: src/sys/arch/sparc/fpu/fpu.c
diff -u src/sys/arch/sparc/fpu/fpu.c:1.27.46.4 src/sys/arch/sparc/fpu/fpu.c:1.27.46.5
--- src/sys/arch/sparc/fpu/fpu.c:1.27.46.4 Fri Jan 18 00:01:00 2019
+++ src/sys/arch/sparc/fpu/fpu.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: fpu.c,v 1.27.46.4 2019/01/18 00:01:00 pgoyette Exp $ */
+/* $NetBSD: fpu.c,v 1.27.46.5 2019/01/22 07:42:40 pgoyette Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.27.46.4 2019/01/18 00:01:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.27.46.5 2019/01/22 07:42:40 pgoyette Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -120,13 +120,6 @@ static u_char fpu_codes_sunos[] = {
/* Note: SVR4(Solaris) FPE_* codes happen to be compatible with ours */
/*
- * HOOK for checking if the lwp's emul matches sunos
- */
-MODULE_CALL_HOOK_DECL(get_emul_sunos_hook, int, (const struct emul **emul));
-MODULE_CALL_HOOK(get_emul_sunos_hook, int, (const struct emul ** emul), (emul),
- enosys());
-
-/*
* The FPU gave us an exception. Clean up the mess. Note that the
* fp queue can only have FPops in it, never load/store FP registers
* nor FBfcc instructions. Experiments with `crashme' prove that
@@ -150,8 +143,9 @@ fpu_cleanup(
int code = 0;
const struct emul *sunos_emul;
- if (get_emul_sunos_hook_call(&sunos_emul) == 0 &&
- p->p_emul == sunos_emul)
+ MODULE_CALL_HOOK(get_emul_sunos_hook, (&sunos_emul), enosys(), ret);
+
+ if (ret == 0 && p->p_emul == sunos_emul)
fpu_codes = fpu_codes_sunos;
else
fpu_codes = fpu_codes_native;
Index: src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
diff -u src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.4 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.5
--- src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.110.14.4 Mon Jan 21 06:49:27 2019
+++ src/sys/arch/sparc64/sparc64/netbsd32_machdep.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_machdep.c,v 1.110.14.4 2019/01/21 06:49:27 pgoyette Exp $ */
+/* $NetBSD: netbsd32_machdep.c,v 1.110.14.5 2019/01/22 07:42:40 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.4 2019/01/21 06:49:27 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.110.14.5 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -262,17 +262,12 @@ netbsd32_sendsig_siginfo(const ksiginfo_
struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
-MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, void,
- (const ksiginfo_t *ksi, const sigset_t *mask));
-MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook,
- (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
- netbsd32_sendsig_siginfo(ksi, mask));
-
void
netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
{
- netbsd32_sendsig_hook_call(ksi, mask);
+ MODULE_CALL_VOID_HOOK(netbsd32_sendsig_hook, (ksi, mask),
+ netbsd32_sendsig_siginfo(ksi, mask));
}
#undef DEBUG
Index: src/sys/compat/common/if_43.c
diff -u src/sys/compat/common/if_43.c:1.14.2.13 src/sys/compat/common/if_43.c:1.14.2.14
--- src/sys/compat/common/if_43.c:1.14.2.13 Fri Jan 18 00:01:00 2019
+++ src/sys/compat/common/if_43.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if_43.c,v 1.14.2.13 2019/01/18 00:01:00 pgoyette Exp $ */
+/* $NetBSD: if_43.c,v 1.14.2.14 2019/01/22 07:42:40 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.13 2019/01/18 00:01:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.14 2019/01/22 07:42:40 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -78,15 +78,6 @@ __KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.
#if defined(COMPAT_43)
-/*
- * Hook for calling the if43_20 compatability routine.
- *
- * 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, int, (u_long ncmd));
-MODULE_CALL_HOOK(if43_20_hook, int, (u_long ncmd), (ncmd), enosys());
-
/*
* Use a wrapper so that the compat_cvtcmd() can return a u_long
*/
@@ -221,7 +212,7 @@ compat_cvtcmd(u_long cmd)
case TAPGIFNAME:
return ncmd;
default:
- (void)if43_20_hook_call(ncmd);
+ MODULE_CALL_HOOK(if43_20_hook, (ncmd), enosys(), ncmd);
return ncmd;
}
}
Index: src/sys/compat/netbsd32/netbsd32_kern_proc.c
diff -u src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.6 src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.7
--- src/sys/compat/netbsd32/netbsd32_kern_proc.c:1.1.2.6 Mon Jan 14 13:34:27 2019
+++ src/sys/compat/netbsd32/netbsd32_kern_proc.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_kern_proc.c,v 1.1.2.6 2019/01/14 13:34:27 pgoyette Exp $ */
+/* $NetBSD: netbsd32_kern_proc.c,v 1.1.2.7 2019/01/22 07:42:40 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.6 2019/01/14 13:34:27 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_kern_proc.c,v 1.1.2.7 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_kstack.h"
@@ -124,14 +124,14 @@ copyin_psstrings_32(struct proc *p, stru
return 0;
}
-static void
-get_base32(char **argv, size_t i, vaddr_t *base)
+static vaddr_t
+get_base32(char **argv, size_t i)
{
netbsd32_charp *argv32;
argv32 = (netbsd32_charp *)argv;
- *base = (vaddr_t)NETBSD32PTR64(argv32[i]);
+ return (vaddr_t)NETBSD32PTR64(argv32[i]);
}
#if !defined(_RUMPSERVER)
Index: src/sys/compat/netbsd32/netbsd32_module.c
diff -u src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.12 src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.13
--- src/sys/compat/netbsd32/netbsd32_module.c:1.6.2.12 Fri Jan 18 00:01:01 2019
+++ src/sys/compat/netbsd32/netbsd32_module.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_module.c,v 1.6.2.12 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: netbsd32_module.c,v 1.6.2.13 2019/01/22 07:42:40 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.12 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_module.c,v 1.6.2.13 2019/01/22 07:42:40 pgoyette Exp $");
#include <sys/param.h>
#include <sys/dirent.h>
@@ -200,16 +200,6 @@ compat32_80_modctl_compat_stub(struct lw
return EPASSTHROUGH;
}
-/* Module hook for netbsd32_80_modctl */
-MODULE_CALL_HOOK_DECL(compat32_80_modctl_hook, int,
- (struct lwp *lwp, const struct netbsd32_modctl_args *uap,
- register_t *result));
-MODULE_CALL_HOOK(compat32_80_modctl_hook, int,
- (struct lwp *lwp, const struct netbsd32_modctl_args *uap,
- register_t *result),
- (lwp, uap, result),
- enosys());
-
int
netbsd32_modctl(struct lwp *lwp, const struct netbsd32_modctl_args *uap,
register_t *result)
@@ -229,7 +219,8 @@ netbsd32_modctl(struct lwp *lwp, const s
arg = SCARG_P32(uap, arg);
- error = compat32_80_modctl_hook_call(lwp, uap, result);
+ MODULE_CALL_HOOK(compat32_80_modctl_hook, (lwp, uap, result),
+ enosys(), error);
if (error != EPASSTHROUGH && error != ENOSYS)
return error;
Index: src/sys/dev/bio.c
diff -u src/sys/dev/bio.c:1.13.16.8 src/sys/dev/bio.c:1.13.16.9
--- src/sys/dev/bio.c:1.13.16.8 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/bio.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: bio.c,v 1.13.16.8 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: bio.c,v 1.13.16.9 2019/01/22 07:42:40 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.8 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.13.16.9 2019/01/22 07:42:40 pgoyette Exp $");
#include "opt_compat_netbsd.h"
@@ -114,13 +114,6 @@ bioclose(dev_t dev, int flags, int mode,
return 0;
}
-/* Hook up the compat_bio_30 routine */
-MODULE_CALL_HOOK_DECL(compat_bio_30_hook, int,
- (void * cookie, u_long cmd, void *addr, int(*ff)(void *, u_long, void *)));
-MODULE_CALL_HOOK(compat_bio_30_hook, int,
- (void * cookie, u_long cmd, void *addr, int(*ff)(void *, u_long, void *)),
- (cookie, cmd, addr, ff), enosys());
-
static int
bioioctl(dev_t dev, u_long cmd, void *addr, int flag, struct lwp *l)
{
@@ -196,8 +189,9 @@ bioioctl(dev_t dev, u_long cmd, void *ad
return ENOENT;
}
mutex_exit(&bio_lock);
- error = compat_bio_30_hook_call(common->bc_cookie, cmd, addr,
- bio_delegate_ioctl);
+ MODULE_CALL_HOOK(compat_bio_30_hook,
+ (common->bc_cookie, cmd, addr, bio_delegate_ioctl),
+ enosys(), error);
if (error == ENOSYS)
error = bio_delegate_ioctl(common->bc_cookie, cmd,
addr);
Index: src/sys/dev/ccd.c
diff -u src/sys/dev/ccd.c:1.175.2.11 src/sys/dev/ccd.c:1.175.2.12
--- src/sys/dev/ccd.c:1.175.2.11 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/ccd.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: ccd.c,v 1.175.2.11 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: ccd.c,v 1.175.2.12 2019/01/22 07:42:40 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.11 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.175.2.12 2019/01/22 07:42:40 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -1056,19 +1056,6 @@ ccdread(dev_t dev, struct uio *uio, int
return (physio(ccdstrategy, NULL, dev, B_READ, minphys, uio));
}
-/* Hook the compat_60 ioctl code
- *
- * 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, int,
- (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, int,
- (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());
-
/* ARGSUSED */
static int
ccdwrite(dev_t dev, struct uio *uio, int flags)
@@ -1095,7 +1082,7 @@ ccdioctl(dev_t dev, u_long cmd, void *da
{
int unit = ccdunit(dev);
int i, j, lookedup = 0, error = 0;
- int part, pmask, make;
+ int part, pmask, make, hook;
struct ccd_softc *cs;
struct ccd_ioctl *ccio = (struct ccd_ioctl *)data;
kauth_cred_t uc;
@@ -1111,8 +1098,10 @@ ccdioctl(dev_t dev, u_long cmd, void *da
make = 1;
break;
default:
- if (ccd_ioctl_60_hook_call(0, cmd, NULL, 0, NULL, NULL)
- == 0)
+ MODULE_CALL_HOOK(ccd_ioctl_60_hook,
+ (0, cmd, NULL, 0, NULL, NULL),
+ enosys(), hook);
+ if (hook == 0)
make = 1;
else
make = 0;
@@ -1123,7 +1112,9 @@ ccdioctl(dev_t dev, u_long cmd, void *da
return ENOENT;
uc = kauth_cred_get();
- error = ccd_ioctl_60_hook_call(dev, cmd, data, flag, l, ccdioctl);
+ MODULE_CALL_HOOK(ccd_ioctl_60_hook,
+ (dev, cmd, data, flag, l, ccdioctl),
+ enosys(), error);
if (error != ENOSYS)
return error;
Index: src/sys/dev/clockctl.c
diff -u src/sys/dev/clockctl.c:1.35.14.11 src/sys/dev/clockctl.c:1.35.14.12
--- src/sys/dev/clockctl.c:1.35.14.11 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/clockctl.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: clockctl.c,v 1.35.14.11 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: clockctl.c,v 1.35.14.12 2019/01/22 07:42:40 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.11 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clockctl.c,v 1.35.14.12 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_ntp.h"
@@ -200,13 +200,6 @@ clockctl_modcmd(modcmd_t cmd, void *data
return error;
}
-/* Hook the compat_50 stuff */
-MODULE_CALL_HOOK_DECL(clockctl_ioctl_50_hook, int,
- (dev_t dev, u_long cmd, void *data, int flags, struct lwp *l));
-MODULE_CALL_HOOK(clockctl_ioctl_50_hook, int,
- (dev_t dev, u_long cmd, void *data, int flags, struct lwp *l),
- (dev, cmd, data, flags, l), enosys());
-
int
clockctlioctl(
dev_t dev,
@@ -270,7 +263,8 @@ clockctlioctl(
break;
}
default:
- error = clockctl_ioctl_50_hook_call(dev, cmd, data, flags, l);
+ MODULE_CALL_HOOK(clockctl_ioctl_50_hook,
+ (dev, cmd, data, flags, l), enosys(), error);
if (error == ENOSYS)
error = ENOTTY;
}
Index: src/sys/dev/vnd.c
diff -u src/sys/dev/vnd.c:1.263.2.13 src/sys/dev/vnd.c:1.263.2.14
--- src/sys/dev/vnd.c:1.263.2.13 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/vnd.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: vnd.c,v 1.263.2.13 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: vnd.c,v 1.263.2.14 2019/01/22 07:42:40 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.13 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.263.2.14 2019/01/22 07:42:40 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_vnd.h"
@@ -1126,24 +1126,6 @@ vndioctl_get(struct lwp *l, void *data,
}
}
-MODULE_CALL_HOOK_DECL(compat_vndioctl_30_hook, int,
- (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, int,
- (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, int,
- (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, int,
- (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());
-
/* ARGSUSED */
static int
vndioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l)
@@ -1180,8 +1162,9 @@ vndioctl(dev_t dev, u_long cmd, void *da
default:
/* First check for COMPAT_50 hook */
- error = compat_vndioctl_50_hook_call(cmd, l, data, unit,
- &vattr, vndioctl_get);
+ MODULE_CALL_HOOK(compat_vndioctl_50_hook,
+ (cmd, l, data, unit, &vattr, vndioctl_get),
+ enosys(), error);
/*
* If not present, then COMPAT_30 hook also not
@@ -1195,8 +1178,9 @@ 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_call(cmd, l, data,
- unit, &vattr, vndioctl_get);
+ MODULE_CALL_HOOK(compat_vndioctl_30_hook,
+ (cmd, l, data, unit, &vattr, vndioctl_get),
+ enosys(), error);
/* If no COMPAT_30 module, or not handled, check writes */
if (error == ENOSYS || error == EPASSTHROUGH) {
Index: src/sys/dev/raidframe/rf_netbsdkintf.c
diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.10 src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.11
--- src/sys/dev/raidframe/rf_netbsdkintf.c:1.356.2.10 Fri Jan 18 08:50:42 2019
+++ src/sys/dev/raidframe/rf_netbsdkintf.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_netbsdkintf.c,v 1.356.2.10 2019/01/18 08:50:42 pgoyette Exp $ */
+/* $NetBSD: rf_netbsdkintf.c,v 1.356.2.11 2019/01/22 07:42:40 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.10 2019/01/18 08:50:42 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.356.2.11 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -1037,25 +1037,6 @@ raid_detach_unlocked(struct raid_softc *
return 0;
}
-/* Hooks to call the 5.0 and 8.0 ioctl compat code */
-MODULE_CALL_HOOK_DECL(raidframe50_ioctl_hook, int,
- (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
- RF_Config_t **k_cfg));
-MODULE_CALL_HOOK(raidframe50_ioctl_hook, int,
- (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, int,
- (int cmd, int initted, RF_Raid_t *raidPtr, int unit, void *data,
- RF_Config_t **k_cfg));
-MODULE_CALL_HOOK(raidframe80_ioctl_hook, int,
- (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());
-
static int
raidioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l)
{
@@ -1139,8 +1120,9 @@ 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_call(cmd,
- (rs->sc_flags & RAIDF_INITED), raidPtr, unit, data, &k_cfg);
+ MODULE_CALL_HOOK(raidframe50_ioctl_hook,
+ (cmd, (rs->sc_flags & RAIDF_INITED),raidPtr, unit, data, &k_cfg),
+ enosys(), retcode);
if (retcode == ENOSYS)
retcode = 0;
else if (retcode == EAGAIN)
@@ -1148,8 +1130,9 @@ raidioctl(dev_t dev, u_long cmd, void *d
else if (retcode != EPASSTHROUGH)
return retcode;
- retcode = raidframe80_ioctl_hook_call(cmd,
- (rs->sc_flags & RAIDF_INITED), raidPtr, unit, data, &k_cfg);
+ MODULE_CALL_HOOK(raidframe80_ioctl_hook,
+ (cmd, (rs->sc_flags & RAIDF_INITED),raidPtr, unit, data, &k_cfg),
+ enosys(), retcode);
if (retcode == ENOSYS)
retcode = 0;
else if (retcode == EAGAIN)
Index: src/sys/dev/sysmon/sysmon_power.c
diff -u src/sys/dev/sysmon/sysmon_power.c:1.58.2.8 src/sys/dev/sysmon/sysmon_power.c:1.58.2.9
--- src/sys/dev/sysmon/sysmon_power.c:1.58.2.8 Mon Jan 21 06:49:28 2019
+++ src/sys/dev/sysmon/sysmon_power.c Tue Jan 22 07:42:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sysmon_power.c,v 1.58.2.8 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: sysmon_power.c,v 1.58.2.9 2019/01/22 07:42:40 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.8 2019/01/21 06:49:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_power.c,v 1.58.2.9 2019/01/22 07:42:40 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -316,15 +316,6 @@ sysmon_power_event_queue_flush(void)
}
/*
- * Call the compat hook function
- */
-MODULE_CALL_HOOK_DECL(compat_sysmon_power_40_hook, void,
- (power_event_t *pev, struct sysmon_pswitch *pswitch, int event));
-MODULE_CALL_VOID_HOOK(compat_sysmon_power_40_hook,
- (power_event_t *pev, struct sysmon_pswitch *pswitch, int event),
- (pev, pswitch, event), __nothing);
-
-/*
* sysmon_power_daemon_task:
*
* Assign required power event members and sends a signal
@@ -355,7 +346,8 @@ sysmon_power_daemon_task(struct power_ev
pev.pev_type = POWER_EVENT_SWITCH_STATE_CHANGE;
- compat_sysmon_power_40_hook_call(&pev, pswitch, event);
+ MODULE_CALL_VOID_HOOK(compat_sysmon_power_40_hook,
+ (&pev, pswitch, event), __nothing);
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.9 src/sys/dev/usb/ugen.c:1.139.2.10
--- src/sys/dev/usb/ugen.c:1.139.2.9 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/usb/ugen.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: ugen.c,v 1.139.2.9 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: ugen.c,v 1.139.2.10 2019/01/22 07:42:41 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.9 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.139.2.10 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -1439,11 +1439,6 @@ ugen_get_alt_index(struct ugen_softc *sc
return usbd_get_interface_altindex(iface);
}
-MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook, int,
- (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)));
-
Static int
ugen_do_ioctl(struct ugen_softc *sc, int endpt, u_long cmd,
void *addr, int flag, struct lwp *l)
@@ -1842,11 +1837,16 @@ ugen_do_ioctl(struct ugen_softc *sc, int
(struct usb_device_info *)addr, 0);
break;
case USB_GET_DEVICEINFO_OLD:
- if (usb_subr_30_fill_hook_call(sc->sc_udev,
- (struct usb_device_info_old *)addr, 0,
- usbd_devinfo_vp, usbd_printBCD) == 0)
+ {
+ int ret;
+ MODULE_CALL_HOOK(usb_subr_30_fill_hook,
+ (sc->sc_udev, (struct usb_device_info_old *)addr, 0,
+ usbd_devinfo_vp, usbd_printBCD),
+ enosys(), ret);
+ if (ret == 0)
return 0;
return EINVAL;
+ }
default:
return EINVAL;
}
Index: src/sys/dev/usb/uhid.c
diff -u src/sys/dev/usb/uhid.c:1.101.2.8 src/sys/dev/usb/uhid.c:1.101.2.9
--- src/sys/dev/usb/uhid.c:1.101.2.8 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/usb/uhid.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: uhid.c,v 1.101.2.8 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: uhid.c,v 1.101.2.9 2019/01/22 07:42:41 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.8 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.101.2.9 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -513,11 +513,6 @@ uhidwrite(dev_t dev, struct uio *uio, in
return error;
}
-MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook, int,
- (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
uhid_do_ioctl(struct uhid_softc *sc, u_long cmd, void *addr,
int flag, struct lwp *l)
@@ -659,9 +654,11 @@ 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_fill_hook_call( sc->sc_hdev.sc_parent->sc_udev,
- (struct usb_device_info_old *)addr, 0,
- usbd_devinfo_vp, usbd_printBCD);
+ MODULE_CALL_HOOK(usb_subr_30_fill_hook,
+ (sc->sc_hdev.sc_parent->sc_udev,
+ (struct usb_device_info_old *)addr, 0,
+ usbd_devinfo_vp, usbd_printBCD),
+ enosys(), err);
if (err == 0)
return 0;
break;
Index: src/sys/dev/usb/usb.c
diff -u src/sys/dev/usb/usb.c:1.168.2.10 src/sys/dev/usb/usb.c:1.168.2.11
--- src/sys/dev/usb/usb.c:1.168.2.10 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/usb/usb.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: usb.c,v 1.168.2.10 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: usb.c,v 1.168.2.11 2019/01/22 07:42:41 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.10 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.168.2.11 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -656,13 +656,6 @@ usbopen(dev_t dev, int flag, int mode, s
return 0;
}
-/* Call the hook for usb30_copy_to_old() */
-MODULE_CALL_HOOK_DECL(usb_subr_30_copy_hook, int,
- (struct usb_event *ue, struct usb_event_old *ueo, struct uio *uio));
-MODULE_CALL_HOOK(usb_subr_30_copy_hook, int,
- (struct usb_event *ue, struct usb_event_old *ueo, struct uio *uio),
- (ue, ueo, uio), enosys());
-
int
usbread(dev_t dev, struct uio *uio, int flag)
{
@@ -703,7 +696,8 @@ 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_copy_hook_call(ue, ueo, uio);
+ MODULE_CALL_HOOK(usb_subr_30_copy_hook,
+ (ue, ueo, uio), enosys(), error);
if (error == ENOSYS)
error = EINVAL;
@@ -735,19 +729,6 @@ usbclose(dev_t dev, int flag, int mode,
return 0;
}
-/* Call hook for usbd30_fill_device_info_old() */
-MODULE_CALL_HOOK_DECL(usb_subr_30_fill_hook, int,
- (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)));
-MODULE_CALL_HOOK(usb_subr_30_fill_hook, int,
- (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)),
- (udev, addr, usedev, fill_devinfo_vp, printBCD),
- enosys());
-
int
usbioctl(dev_t devt, u_long cmd, void *data, int flag, struct lwp *l)
{
@@ -896,8 +877,9 @@ usbioctl(dev_t devt, u_long cmd, void *d
error = ENXIO;
goto fail;
}
- error = usb_subr_30_fill_hook_call(dev, di, 1,
- usbd_devinfo_vp, usbd_printBCD);
+ MODULE_CALL_HOOK(usb_subr_30_fill_hook,
+ (dev, di, 1, usbd_devinfo_vp, usbd_printBCD),
+ enosys(), error);
if (error == ENOSYS)
error = EINVAL;
if (error)
Index: src/sys/dev/wscons/wsevent.c
diff -u src/sys/dev/wscons/wsevent.c:1.37.2.9 src/sys/dev/wscons/wsevent.c:1.37.2.10
--- src/sys/dev/wscons/wsevent.c:1.37.2.9 Fri Jan 18 00:01:01 2019
+++ src/sys/dev/wscons/wsevent.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: wsevent.c,v 1.37.2.9 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: wsevent.c,v 1.37.2.10 2019/01/22 07:42:41 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.9 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsevent.c,v 1.37.2.10 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -189,12 +189,6 @@ wsevent_fini(struct wseventvar *ev)
softint_disestablish(ev->sih);
}
-MODULE_CALL_HOOK_DECL(wsevent_50_copyout_events_hook, int,
- (const struct wscons_event *events, int cnt, struct uio *uio));
-MODULE_CALL_HOOK(wsevent_50_copyout_events_hook, int,
- (const struct wscons_event *events, int cnt, struct uio *uio),
- (events, cnt, uio), enosys());
-
static int
wsevent_copyout_events(const struct wscons_event *events, int cnt,
struct uio *uio, int ver)
@@ -203,7 +197,8 @@ wsevent_copyout_events(const struct wsco
switch (ver) {
case 0:
- error = wsevent_50_copyout_events_hook_call(events, cnt, uio);
+ MODULE_CALL_HOOK(wsevent_50_copyout_events_hook,
+ (events, cnt, uio), enosys(), error);
if (error == ENOSYS)
error = EINVAL;
return error;
Index: src/sys/fs/puffs/puffs_msgif.c
diff -u src/sys/fs/puffs/puffs_msgif.c:1.101.10.10 src/sys/fs/puffs/puffs_msgif.c:1.101.10.11
--- src/sys/fs/puffs/puffs_msgif.c:1.101.10.10 Mon Jan 21 06:49:28 2019
+++ src/sys/fs/puffs/puffs_msgif.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_msgif.c,v 1.101.10.10 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: puffs_msgif.c,v 1.101.10.11 2019/01/22 07:42:41 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.10 2019/01/21 06:49:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.101.10.11 2019/01/22 07:42:41 pgoyette Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -323,21 +323,6 @@ puffs_getmsgid(struct puffs_mount *pmp)
return rv;
}
-/* Routines to call the compat hooks */
- /* Out-going */
-MODULE_CALL_HOOK_DECL(puffs_50_out_hook, int,
- (struct puffs_req *oreq, struct puffs_req **creqp, ssize_t *deltap));
-MODULE_CALL_HOOK(puffs_50_out_hook, int,
- (struct puffs_req *oreq, struct puffs_req **creqp, ssize_t *deltap),
- (oreq, creqp, deltap), enosys());
-
- /* Incoming */
-MODULE_CALL_HOOK_DECL(puffs_50_in_hook, void,
- (struct puffs_req *oreq, struct puffs_req *creqp));
-MODULE_CALL_VOID_HOOK(puffs_50_in_hook,
- (struct puffs_req *oreq, struct puffs_req *creqp),
- (oreq, creqp), __nothing);
-
/*
* A word about reference counting of parks. A reference must be taken
* when accessing a park and additionally when it is on a queue. So
@@ -351,6 +336,9 @@ puffs_msg_enqueue(struct puffs_mount *pm
struct lwp *l = curlwp;
struct puffs_req *preq, *creq;
ssize_t delta;
+#if 1
+ int ret;
+#endif
/*
* Some clients reuse a park, so reset some flags. We might
@@ -364,14 +352,17 @@ puffs_msg_enqueue(struct puffs_mount *pm
#if 1
/* check if we do compat adjustments */
- if (pmp->pmp_docompat &&
- puffs_50_out_hook_call(preq, &creq, &delta) == 0) {
- park->park_creq = park->park_preq;
- park->park_creqlen = park->park_maxlen;
-
- park->park_maxlen += delta;
- park->park_copylen += delta;
- park->park_preq = preq = creq;
+ if (pmp->pmp_docompat) {
+ MODULE_CALL_HOOK(puffs_50_out_hook, (preq, &creq, &delta),
+ enosys(), ret);
+ if (ret == 0) {
+ park->park_creq = park->park_preq;
+ park->park_creqlen = park->park_maxlen;
+
+ park->park_maxlen += delta;
+ park->park_copylen += delta;
+ park->park_preq = preq = creq;
+ }
}
#endif
@@ -822,7 +813,8 @@ puffsop_msg(void *ctx, struct puffs_req
size_t csize;
KASSERT(pmp->pmp_docompat);
- puffs_50_in_hook_call(preq, park->park_creq);
+ MODULE_CALL_VOID_HOOK(puffs_50_in_hook,
+ (preq, park->park_creq), __nothing);
creq = park->park_creq;
csize = park->park_creqlen;
park->park_creq = park->park_preq;
Index: src/sys/kern/kern_proc.c
diff -u src/sys/kern/kern_proc.c:1.209.2.14 src/sys/kern/kern_proc.c:1.209.2.15
--- src/sys/kern/kern_proc.c:1.209.2.14 Mon Jan 21 06:49:28 2019
+++ src/sys/kern/kern_proc.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_proc.c,v 1.209.2.14 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: kern_proc.c,v 1.209.2.15 2019/01/22 07:42:41 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.14 2019/01/21 06:49:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.209.2.15 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_kstack.h"
@@ -1892,28 +1892,17 @@ sysctl_doeproc(SYSCTLFN_ARGS)
return error;
}
-/*
- * compat_netbsd32 hooks
- */
-#if !defined(_RUMPKERNEL)
-MODULE_CALL_HOOK_DECL(kern_proc_32_copyin_hook, int,
- (struct proc *p, struct ps_strings *s));
-MODULE_CALL_HOOK(kern_proc_32_copyin_hook, int,
- (struct proc *p, struct ps_strings *s), (p, s), enosys());
-
-MODULE_CALL_HOOK_DECL(kern_proc_32_base_hook, void,
- (char **argv, size_t i, vaddr_t *base));
-MODULE_CALL_VOID_HOOK(kern_proc_32_base_hook,
- (char **argv, size_t i, vaddr_t *base), (argv, i, base), __nothing);
-#endif /* !defined(_RUMPKERNEL) */
-
int
copyin_psstrings(struct proc *p, struct ps_strings *arginfo)
{
-
#if !defined(_RUMPKERNEL)
- if (p->p_flag & PK_32)
- return kern_proc_32_copyin_hook_call(p, arginfo);
+ int retval;
+
+ if (p->p_flag & PK_32) {
+ MODULE_CALL_HOOK(kern_proc_32_copyin_hook, (p, arginfo),
+ enosys(), retval);
+ return retval;
+ }
#endif /* !defined(_RUMPKERNEL) */
return copyin_proc(p, (void *)p->p_psstrp, arginfo, sizeof(*arginfo));
@@ -2126,7 +2115,8 @@ copy_procargs(struct proc *p, int oid, s
#if !defined(_RUMPKERNEL)
if (p->p_flag & PK_32)
- kern_proc_32_base_hook_call(argv, i++, &base);
+ MODULE_CALL_HOOK(kern_proc_32_base_hook,
+ (argv, i++), 0, 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.7 src/sys/kern/kern_rndq.c:1.89.16.8
--- src/sys/kern/kern_rndq.c:1.89.16.7 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/kern_rndq.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_rndq.c,v 1.89.16.7 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: kern_rndq.c,v 1.89.16.8 2019/01/22 07:42:41 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.7 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.89.16.8 2019/01/22 07:42:41 pgoyette Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -1446,15 +1446,6 @@ krs_setflags(krndsource_t *kr, uint32_t
}
}
-MODULE_CALL_HOOK_DECL(rnd_ioctl_50_hook, int, (struct file *, u_long, void *));
-MODULE_CALL_HOOK_DECL(rnd_ioctl_50_32_hook, int,
- (struct file *, u_long, void *));
-
-MODULE_CALL_HOOK(rnd_ioctl_50_hook, int,
- (struct file *fp, u_long cmd, void *addr), (fp, cmd, addr), enosys());
-MODULE_CALL_HOOK(rnd_ioctl_50_32_hook, int,
- (struct file *fp, u_long cmd, void *addr), (fp, cmd, addr), enosys());
-
int
rnd_system_ioctl(struct file *fp, u_long cmd, void *addr)
{
@@ -1501,10 +1492,12 @@ rnd_system_ioctl(struct file *fp, u_long
break;
default:
- ret = rnd_ioctl_50_hook_call(fp, cmd, addr);
+ MODULE_CALL_HOOK(rnd_ioctl_50_hook, (fp, cmd, addr),
+ enosys(), ret);
#if defined(_LP64)
if (ret == ENOSYS)
- ret = rnd_ioctl_50_32_hook_call(fp, cmd, addr);
+ MODULE_CALL_HOOK(rnd_ioctl_50_32_hook, (fp, cmd, addr),
+ enosys(), ret);
#endif
if (ret == ENOSYS)
ret = ENOTTY;
Index: src/sys/kern/sys_module.c
diff -u src/sys/kern/sys_module.c:1.23.2.16 src/sys/kern/sys_module.c:1.23.2.17
--- src/sys/kern/sys_module.c:1.23.2.16 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/sys_module.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_module.c,v 1.23.2.16 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: sys_module.c,v 1.23.2.17 2019/01/22 07:42:41 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.16 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_module.c,v 1.23.2.17 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_modular.h"
@@ -261,12 +261,6 @@ handle_modctl_stat(struct iovec *iov, vo
return error;
}
-/* MODULE_HOOK glue for modstat_80 */
-MODULE_CALL_HOOK_DECL(compat_modstat_80_hook, int,
- (int cmd, struct iovec *iov, void *arg));
-MODULE_CALL_HOOK(compat_modstat_80_hook, int,
- (int cmd, struct iovec *iov, void *arg), (cmd, iov, arg), enosys());
-
int
sys_modctl(struct lwp *l, const struct sys_modctl_args *uap,
register_t *retval)
@@ -331,8 +325,9 @@ sys_modctl(struct lwp *l, const struct s
break;
default:
- error = compat_modstat_80_hook_call(SCARG(uap, cmd),
- &iov, arg);
+
+ MODULE_CALL_HOOK(compat_modstat_80_hook,
+ (SCARG(uap, cmd), &iov, arg), enosys(), error);
if (error == ENOSYS)
error = EINVAL;
break;
Index: src/sys/kern/sysv_ipc.c
diff -u src/sys/kern/sysv_ipc.c:1.32.16.10 src/sys/kern/sysv_ipc.c:1.32.16.11
--- src/sys/kern/sysv_ipc.c:1.32.16.10 Fri Jan 18 08:50:57 2019
+++ src/sys/kern/sysv_ipc.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sysv_ipc.c,v 1.32.16.10 2019/01/18 08:50:57 pgoyette Exp $ */
+/* $NetBSD: sysv_ipc.c,v 1.32.16.11 2019/01/22 07:42:41 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.10 2019/01/18 08:50:57 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.32.16.11 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_sysv.h"
@@ -349,10 +349,6 @@ stub_sysvipc50_sysctl(SYSCTLFN_ARGS)
return EPASSTHROUGH;
}
-MODULE_CALL_HOOK_DECL(sysvipc50_sysctl_hook, int, (SYSCTLFN_PROTO));
-MODULE_CALL_HOOK(sysvipc50_sysctl_hook, int, (SYSCTLFN_ARGS),
- (SYSCTLFN_CALL(rnode)), stub_sysvipc50_sysctl(SYSCTLFN_CALL(rnode)));
-
static int
sysctl_kern_sysvipc(SYSCTLFN_ARGS)
{
@@ -379,7 +375,8 @@ sysctl_kern_sysvipc(SYSCTLFN_ARGS)
* to the non-compat sysctl code.
*/
- error = sysvipc50_sysctl_hook_call(SYSCTLFN_CALL(rnode));
+ MODULE_CALL_HOOK(sysvipc50_sysctl_hook, (SYSCTLFN_CALL(rnode)),
+ stub_sysvipc50_sysctl(SYSCTLFN_CALL(rnode)), error);
if (error != EPASSTHROUGH)
return error;
Index: src/sys/kern/tty.c
diff -u src/sys/kern/tty.c:1.275.2.8 src/sys/kern/tty.c:1.275.2.9
--- src/sys/kern/tty.c:1.275.2.8 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/tty.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: tty.c,v 1.275.2.8 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: tty.c,v 1.275.2.9 2019/01/22 07:42:41 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.8 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.275.2.9 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -919,15 +919,6 @@ ttyoutput(int c, struct tty *tp)
}
/*
- * MODULE_HOOK glue for compat_60_ttioctl
- */
-MODULE_CALL_HOOK_DECL(compat_60_ttioctl_hook, int,
- (dev_t, u_long, void *, int, struct lwp *));
-MODULE_CALL_HOOK(compat_60_ttioctl_hook, int,
- (dev_t dev, u_long cmd, void *data, int flag, struct lwp *l),
- (dev, cmd, data, flag, l), enosys());
-
-/*
* Ioctls for all tty devices. Called after line-discipline specific ioctl
* has been called to do discipline-specific functions and/or reject any
* of these ioctl commands.
@@ -1422,16 +1413,16 @@ 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_ttioctl_hook_call(tp->t_dev, cmd,
- data, flag, l);
+ MODULE_CALL_HOOK(compat_60_ttioctl_hook,
+ (tp->t_dev, cmd, data, flag, l), enosys(), error);
if (error != ENOSYS) {
break;
}
rw_exit(&ttcompat_lock);
(void)module_autoload("compat_60", MODULE_CLASS_EXEC);
rw_enter(&ttcompat_lock, RW_READER);
- error = compat_60_ttioctl_hook_call(tp->t_dev, cmd,
- data, flag, l);
+ MODULE_CALL_HOOK(compat_60_ttioctl_hook,
+ (tp->t_dev, cmd, data, flag, l), enosys(), error);
if (error == ENOSYS) {
rw_exit(&ttcompat_lock);
return EPASSTHROUGH;
Index: src/sys/kern/tty_ptm.c
diff -u src/sys/kern/tty_ptm.c:1.37.16.5 src/sys/kern/tty_ptm.c:1.37.16.6
--- src/sys/kern/tty_ptm.c:1.37.16.5 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/tty_ptm.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: tty_ptm.c,v 1.37.16.5 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: tty_ptm.c,v 1.37.16.6 2019/01/22 07:42:41 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.5 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 1.37.16.6 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -373,24 +373,6 @@ ptmclose(dev_t dev, int flag, int mode,
return (0);
}
-/*
- * MODULE_HOOK glue for ptmioctl_60
- */
-
-int
-stub_compat_ptmioctl_60(dev_t dev, u_long cmd, void *data, int flag,
- struct lwp *l)
-{
-
- return EPASSTHROUGH;
-}
-
-MODULE_CALL_HOOK_DECL(compat_60_ptmioctl_hook, int,
- (dev_t, u_long, void *, int, struct lwp *));
-MODULE_CALL_HOOK(compat_60_ptmioctl_hook, int,
- (dev_t dev, u_long cmd, void *data, int flag, struct lwp *l),
- (dev, cmd, data, flag, l), enosys());
-
static int
/*ARGSUSED*/
ptmioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l)
@@ -421,7 +403,8 @@ ptmioctl(dev_t dev, u_long cmd, void *da
goto bad2;
return 0;
default:
- error = compat_60_ptmioctl_hook_call(dev, cmd, data, flag, l);
+ MODULE_CALL_HOOK(compat_60_ptmioctl_hook,
+ (dev, cmd, data, flag, l), EPASSTHROUGH, error);
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.9 src/sys/kern/uipc_usrreq.c:1.183.2.10
--- src/sys/kern/uipc_usrreq.c:1.183.2.9 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/uipc_usrreq.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: uipc_usrreq.c,v 1.183.2.9 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: uipc_usrreq.c,v 1.183.2.10 2019/01/22 07:42:41 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.9 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_usrreq.c,v 1.183.2.10 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -330,12 +330,6 @@ unp_free(struct unpcb *unp)
kmem_free(unp, sizeof(*unp));
}
-MODULE_CALL_HOOK_DECL(compat_70_unp_hook, struct mbuf *,
- (struct lwp *, struct mbuf *));
-MODULE_CALL_HOOK(compat_70_unp_hook, struct mbuf *,
- (struct lwp *lwp, struct mbuf *control),
- (lwp, control), stub_compat_70_unp_addsockcred(lwp, control));
-
static int
unp_output(struct mbuf *m, struct mbuf *control, struct unpcb *unp)
{
@@ -356,7 +350,8 @@ 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)
- control = compat_70_unp_hook_call(curlwp, control);
+ MODULE_CALL_HOOK(compat_70_unp_hook, (curlwp, control),
+ stub_compat_70_unp_addsockcred(curlwp, control), control);
if (sbappendaddr(&so2->so_rcv, (const struct sockaddr *)sun, m,
control) == 0) {
unp_dispose(control);
@@ -537,7 +532,9 @@ unp_send(struct socket *so, struct mbuf
* SOCK_STREAM and SOCK_SEQPACKET.
*/
unp->unp_conn->unp_flags &= ~UNP_OWANTCRED;
- control = compat_70_unp_hook_call(curlwp, control);
+ MODULE_CALL_HOOK(compat_70_unp_hook, (curlwp, control),
+ stub_compat_70_unp_addsockcred(curlwp, control),
+ 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.5 src/sys/kern/vfs_syscalls.c:1.518.2.6
--- src/sys/kern/vfs_syscalls.c:1.518.2.5 Fri Jan 18 00:01:01 2019
+++ src/sys/kern/vfs_syscalls.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.518.2.5 2019/01/18 00:01:01 pgoyette Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.518.2.6 2019/01/22 07:42:41 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.5 2019/01/18 00:01:01 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.518.2.6 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -1624,21 +1624,6 @@ fd_open(const char *path, int open_flags
return error;
}
-/*
- * Check permissions, allocate an open file structure,
- * and call the device open routine if any.
- */
-static int
-stub_sys_openat_10(struct pathbuf **pb)
-{
-
- return 0;
-}
-
-MODULE_CALL_HOOK_DECL(compat_10_openat_hook, int, (struct pathbuf **));
-MODULE_CALL_HOOK(compat_10_openat_hook, int, (struct pathbuf **pb), (pb),
- stub_sys_openat_10(pb));
-
static int
do_sys_openat(lwp_t *l, int fdat, const char *path, int flags,
int mode, int *fd)
@@ -1649,7 +1634,8 @@ do_sys_openat(lwp_t *l, int fdat, const
int error;
if (path == NULL) {
- error = compat_10_openat_hook_call(&pb);
+ MODULE_CALL_HOOK(compat_10_openat_hook, (&pb),
+ 0, error);
if (error)
return error;
} else {
Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.419.2.21 src/sys/net/if.c:1.419.2.22
--- src/sys/net/if.c:1.419.2.21 Fri Jan 18 00:01:02 2019
+++ src/sys/net/if.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if.c,v 1.419.2.21 2019/01/18 00:01:02 pgoyette Exp $ */
+/* $NetBSD: if.c,v 1.419.2.22 2019/01/22 07:42:41 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.21 2019/01/18 00:01:02 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.419.2.22 2019/01/22 07:42:41 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@@ -3118,30 +3118,6 @@ out:
}
/*
- * Interface for calling the compat routines
- */
-MODULE_CALL_HOOK_DECL(uipc_syscalls_40_hook, int,
- (struct lwp *l, int cmd, void *data));
-MODULE_CALL_HOOK(uipc_syscalls_40_hook, int,
- (struct lwp *l, int cmd, void *data), (cmd, data), enosys());
-
-MODULE_CALL_HOOK_DECL(uipc_syscalls_50_hook, int,
- (struct lwp *l, int cmd, void *data));
-MODULE_CALL_HOOK(uipc_syscalls_50_hook, int,
- (struct lwp *l, int cmd, void *data), (l, cmd, data), enosys());
-
-MODULE_CALL_HOOK_DECL(if_43_cvtcmd_hook, int,
- (u_long *ncmd, u_long ocmd));
-MODULE_CALL_HOOK(if_43_cvtcmd_hook, int,
- (u_long *ncmd, u_long ocmd), (ncmd, ocmd), enosys());
-
-MODULE_CALL_HOOK_DECL(if_43_ifioctl_hook, int,
- (struct socket *so, u_long ocmd, u_long cmd, void *data, struct lwp *l));
-MODULE_CALL_HOOK(if_43_ifioctl_hook, int,
- (struct socket *so, u_long ocmd, u_long cmd, void *data, struct lwp *l),
- (so, ocmd, cmd, data, l), enosys());
-
-/*
* Interface ioctls.
*/
static int
@@ -3149,7 +3125,7 @@ doifioctl(struct socket *so, u_long cmd,
{
struct ifnet *ifp;
struct ifreq *ifr;
- int error = 0;
+ int error = 0, hook;
u_long ocmd = cmd;
short oif_flags;
struct ifreq ifrb;
@@ -3164,10 +3140,12 @@ doifioctl(struct socket *so, u_long cmd,
case SIOCINITIFADDR:
return EPERM;
default:
- error = uipc_syscalls_40_hook_call(l, cmd, data);
+ MODULE_CALL_HOOK(uipc_syscalls_40_hook, (cmd, data), enosys(),
+ error);
if (error != ENOSYS)
return error;
- error = uipc_syscalls_50_hook_call(l, cmd, data);
+ MODULE_CALL_HOOK(uipc_syscalls_50_hook, (l, cmd, data),
+ enosys(), error);
if (error != ENOSYS)
return error;
error = 0;
@@ -3175,7 +3153,8 @@ doifioctl(struct socket *so, u_long cmd,
}
ifr = data;
- if (if_43_cvtcmd_hook_call(&cmd, ocmd) != ENOSYS) {
+ MODULE_CALL_HOOK(if_43_cvtcmd_hook, (&cmd, ocmd), enosys(), hook);
+ if (hook != ENOSYS) {
if (cmd != ocmd) {
oifr = data;
data = ifr = &ifrb;
@@ -3275,7 +3254,8 @@ doifioctl(struct socket *so, u_long cmd,
error = EOPNOTSUPP;
else {
KERNEL_LOCK_IF_IFP_MPSAFE(ifp);
- error = if_43_ifioctl_hook_call(so, ocmd, cmd, data, l);
+ MODULE_CALL_HOOK(if_43_ifioctl_hook,
+ (so, ocmd, cmd, data, l), enosys(), error);
if (error == ENOSYS)
error = (*so->so_proto->pr_usrreqs->pr_ioctl)(so,
cmd, data, ifp);
@@ -3428,8 +3408,10 @@ ifreq_setaddr(u_long cmd, struct ifreq *
struct ifreq ifrb;
struct oifreq *oifr = NULL;
u_long ocmd = cmd;
+ int hook;
- if (if_43_cvtcmd_hook_call(&cmd, ocmd) != ENOSYS) {
+ MODULE_CALL_HOOK(if_43_cvtcmd_hook, (&cmd, ocmd), enosys(), hook);
+ if (hook != 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.10 src/sys/net/if_spppsubr.c:1.179.2.11
--- src/sys/net/if_spppsubr.c:1.179.2.10 Fri Jan 18 00:01:02 2019
+++ src/sys/net/if_spppsubr.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if_spppsubr.c,v 1.179.2.10 2019/01/18 00:01:02 pgoyette Exp $ */
+/* $NetBSD: if_spppsubr.c,v 1.179.2.11 2019/01/22 07:42:41 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.10 2019/01/18 00:01:02 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.179.2.11 2019/01/22 07:42:41 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@@ -5611,12 +5611,6 @@ sppp_suggest_ip6_addr(struct sppp *sp, s
}
#endif /*INET6*/
-/* Hook the sppp_params50 compat code */
-MODULE_CALL_HOOK_DECL(sppp_params_50_hook, int,
- (struct sppp *sp, u_long cmd, void *data));
-MODULE_CALL_HOOK(sppp_params_50_hook, int,
- (struct sppp *sp, u_long cmd, void *data), (sp, cmd, data), enosys());
-
/*
* Process ioctl requests specific to the PPP interface.
* Permissions have already been checked.
@@ -5922,7 +5916,8 @@ sppp_params(struct sppp *sp, u_long cmd,
{
int ret;
- ret = sppp_params_50_hook_call(sp, cmd, data);
+ MODULE_CALL_HOOK(sppp_params_50_hook, (sp, cmd, data),
+ enosys(), ret);
if (ret != ENOSYS)
return ret;
return (EINVAL);
Index: src/sys/net/rtsock.c
diff -u src/sys/net/rtsock.c:1.238.2.24 src/sys/net/rtsock.c:1.238.2.25
--- src/sys/net/rtsock.c:1.238.2.24 Mon Jan 21 06:49:28 2019
+++ src/sys/net/rtsock.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtsock.c,v 1.238.2.24 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: rtsock.c,v 1.238.2.25 2019/01/22 07:42:41 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.24 2019/01/21 06:49:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.238.2.25 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -123,81 +123,6 @@ rt_msg3(int type, struct rt_addrinfo *rt
return rt_msg2(type, rtinfo, cpv, w, lenp);
}
-/*
- * MODULE_HOOK glue for rtsock_14_oifmsg and rtsock_14_iflist
- */
-MODULE_CALL_HOOK_DECL(rtsock_14_oifmsg_hook, void, (struct ifnet *ifp));
-MODULE_CALL_VOID_HOOK(rtsock_14_oifmsg_hook, (struct ifnet *ifp), (ifp),
- __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_14_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len));
-MODULE_CALL_HOOK(rtsock_14_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len),
- (ifp, w, info, len),
- enosys());
-
-/*
- * MODULE_HOOK glue for rtsock_50 ifaddr_list and various message routines
- */
-MODULE_CALL_HOOK_DECL(rtsock_50_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len));
-MODULE_CALL_HOOK(rtsock_50_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len),
- (ifp, w, info, len),
- enosys());
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_missmsg_hook, void,
- (int, const struct rt_addrinfo *, int, int));
-MODULE_CALL_VOID_HOOK(rtsock_50_rt_missmsg_hook,
- (int type, const struct rt_addrinfo *rtinfo, int flags, int error),
- (type, rtinfo, flags, error), __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ifmsg_hook, void, (struct ifnet *));
-MODULE_CALL_VOID_HOOK(rtsock_50_rt_ifmsg_hook, (struct ifnet *ifp), (ifp),
- __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_newaddrmsg_hook, void,
- (int, struct ifaddr *, int, struct rtentry *));
-MODULE_CALL_VOID_HOOK(rtsock_50_rt_newaddrmsg_hook,
- (int cmd, struct ifaddr *ifa, int error, struct rtentry *rt),
- (cmd, ifa, error, rt), __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ifannouncemsg_hook, void,
- (struct ifnet *, int what));
-MODULE_CALL_VOID_HOOK(rtsock_50_rt_ifannouncemsg_hook,
- (struct ifnet *ifp, int what), (ifp, what), __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ieee80211msg_hook, void,
- (struct ifnet *, int, void *, size_t));
-MODULE_CALL_VOID_HOOK(rtsock_50_rt_ieee80211msg_hook,
- (struct ifnet *ifp, int what, void *data, size_t data_len),
- (ifp, what, data, data_len), __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_50_oifmsg_hook, void, (struct ifnet *ifp));
-MODULE_CALL_VOID_HOOK(rtsock_50_oifmsg_hook, (struct ifnet *ifp), (ifp),
- __nothing);
-
-/*
- * MODULE_HOOK glue for rtsock70_newaddrmsg1, rtsock70_ifaddr_listaddr,
- * and rtsock70_ifaddr_listif
- */
-MODULE_CALL_HOOK_DECL(rtsock_70_newaddr_hook, void, (int, struct ifaddr *));
-MODULE_CALL_VOID_HOOK(rtsock_70_newaddr_hook, (int cmd, struct ifaddr *ifa),
- (cmd, ifa), __nothing);
-
-MODULE_CALL_HOOK_DECL(rtsock_70_iflist_hook, int,
- (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
-MODULE_CALL_HOOK(rtsock_70_iflist_hook, int,
- (struct rt_walkarg *w, struct ifaddr *ifa, struct rt_addrinfo *info),
- (w, ifa, info),
- enosys());
-
-
static int
if_addrflags(struct ifaddr *ifa)
{
@@ -408,12 +333,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_iflist_hook_call(ifp, w, &info,
- len);
+ MODULE_CALL_HOOK(rtsock_50_iflist_hook,
+ (ifp, w, &info, len), enosys(), error);
break;
case NET_RT_OOOIFLIST: /* old _14 */
- error = rtsock_14_iflist_hook_call(ifp, w,
- &info, len);
+ MODULE_CALL_HOOK(rtsock_14_iflist_hook,
+ (ifp, w, &info, len), enosys(), error);
break;
default:
error = EINVAL;
@@ -442,8 +367,8 @@ sysctl_iflist(int af, struct rt_walkarg
case NET_RT_OIFLIST:
case NET_RT_OOIFLIST:
case NET_RT_OOOIFLIST:
- error = rtsock_70_iflist_hook_call(w, ifa,
- &info);
+ MODULE_CALL_HOOK(rtsock_70_iflist_hook,
+ (w, ifa, &info), enosys(), error);
break;
default:
error = EINVAL;
Index: src/sys/net/rtsock_shared.c
diff -u src/sys/net/rtsock_shared.c:1.1.2.6 src/sys/net/rtsock_shared.c:1.1.2.7
--- src/sys/net/rtsock_shared.c:1.1.2.6 Mon Jan 21 06:49:28 2019
+++ src/sys/net/rtsock_shared.c Tue Jan 22 07:42:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtsock_shared.c,v 1.1.2.6 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: rtsock_shared.c,v 1.1.2.7 2019/01/22 07:42:41 pgoyette Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_shared.c,v 1.1.2.6 2019/01/21 06:49:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_shared.c,v 1.1.2.7 2019/01/22 07:42:41 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -113,7 +113,8 @@ __KERNEL_RCSID(0, "$NetBSD: rtsock_share
#define if_xannouncemsghdr if_announcemsghdr50
#define COMPATNAME(x) compat_50_ ## x
#define DOMAINNAME "oroute"
-#define COMPATCALL(name, args) rtsock_50_ ## name ## _hook_call args
+#define COMPATCALL(name, args) \
+ MODULE_CALL_VOID_HOOK(rtsock_50_ ## name ## _hook, args, __nothing);
#define RTS_CTASSERT(x) __nothing
CTASSERT(sizeof(struct ifa_xmsghdr) == 20);
DOMAIN_DEFINE(compat_50_routedomain); /* forward declare and add to link set */
@@ -1297,47 +1298,6 @@ again:
}
/*
- * MODULE_HOOK glue for rtsock_14_oifmsg and rtsock_14_iflist
- */
-MODULE_CALL_HOOK_DECL(rtsock_14_oifmsg_hook, void, (struct ifnet *ifp));
-
-MODULE_CALL_HOOK_DECL(rtsock_14_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len));
-
-/*
- * MODULE_HOOK glue for rtsock_50 ifaddr_list and various message routines
- */
-MODULE_CALL_HOOK_DECL(rtsock_50_iflist_hook, int,
- (struct ifnet *ifp, struct rt_walkarg *w, struct rt_addrinfo *info,
- size_t len));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_missmsg_hook, void,
- (int, const struct rt_addrinfo *, int, int));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ifmsg_hook, void, (struct ifnet *));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_newaddrmsg_hook, void,
- (int, struct ifaddr *, int, struct rtentry *));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ifannouncemsg_hook, void,
- (struct ifnet *, int what));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_rt_ieee80211msg_hook, void,
- (struct ifnet *, int, void *, size_t));
-
-MODULE_CALL_HOOK_DECL(rtsock_50_oifmsg_hook, void, (struct ifnet *ifp));
-
-/*
- * MODULE_HOOK glue for rtsock70_newaddrmsg1, rtsock70_ifaddr_listaddr,
- * and rtsock70_ifaddr_listif
- */
-MODULE_CALL_HOOK_DECL(rtsock_70_newaddr_hook, void, (int, struct ifaddr *));
-
-MODULE_CALL_HOOK_DECL(rtsock_70_iflist_hook, int,
- (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
-
-/*
* This routine is called to generate a message from the routing
* socket indicating that a redirect has occurred, a routing lookup
* has failed, or that a protocol has detected timeouts to a particular
@@ -1390,8 +1350,8 @@ COMPATNAME(rt_ifmsg)(struct ifnet *ifp)
if (m == NULL)
return;
COMPATNAME(route_enqueue)(m, 0);
- rtsock_14_oifmsg_hook_call(ifp);
- rtsock_50_oifmsg_hook_call(ifp);
+ MODULE_CALL_VOID_HOOK(rtsock_14_oifmsg_hook, (ifp), __nothing);
+ MODULE_CALL_VOID_HOOK(rtsock_50_oifmsg_hook, (ifp), __nothing);
}
/*
@@ -1459,7 +1419,8 @@ COMPATNAME(rt_newaddrmsg)(int cmd, struc
default:
panic("%s: unknown command %d", __func__, cmd);
}
- rtsock_70_newaddr_hook_call(ncmd, ifa);
+ MODULE_CALL_VOID_HOOK(rtsock_70_newaddr_hook,
+ (ncmd, ifa), __nothing);
info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr;
KASSERT(ifp->if_dl != NULL);
info.rti_info[RTAX_IFP] = ifp->if_dl->ifa_addr;
Index: src/sys/net80211/ieee80211_ioctl.c
diff -u src/sys/net80211/ieee80211_ioctl.c:1.60.16.7 src/sys/net80211/ieee80211_ioctl.c:1.60.16.8
--- src/sys/net80211/ieee80211_ioctl.c:1.60.16.7 Fri Jan 18 00:01:02 2019
+++ src/sys/net80211/ieee80211_ioctl.c Tue Jan 22 07:42:41 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.7 2019/01/18 00:01:02 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_ioctl.c,v 1.60.16.8 2019/01/22 07:42:41 pgoyette Exp $");
#endif
/*
@@ -2556,14 +2556,6 @@ ieee80211_ioctl(struct ieee80211com *ic,
#endif /* __FreeBSD__ */
#ifdef __NetBSD__
-/*
- * Compatability glue
- */
-MODULE_CALL_HOOK_DECL(ieee80211_ostats_hook, int,
- (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats));
-MODULE_CALL_HOOK(ieee80211_ostats_hook, int,
- (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats),
- (ostats, stats), enosys());
int
ieee80211_ioctl(struct ieee80211com *ic, u_long cmd, void *data)
@@ -2864,7 +2856,8 @@ ieee80211_ioctl(struct ieee80211com *ic,
ifr = (struct ifreq *)data;
s = splnet();
- error = ieee80211_ostats_hook_call(&ostats, &ic->ic_stats);
+ MODULE_CALL_HOOK(ieee80211_ostats_hook,
+ (&ostats, &ic->ic_stats), enosys(), error);
if (error == ENOSYS)
error = EINVAL;
if (error == 0)
Index: src/sys/opencrypto/cryptodev.c
diff -u src/sys/opencrypto/cryptodev.c:1.98.2.10 src/sys/opencrypto/cryptodev.c:1.98.2.11
--- src/sys/opencrypto/cryptodev.c:1.98.2.10 Fri Jan 18 00:01:02 2019
+++ src/sys/opencrypto/cryptodev.c Tue Jan 22 07:42:42 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: cryptodev.c,v 1.98.2.10 2019/01/18 00:01:02 pgoyette Exp $ */
+/* $NetBSD: cryptodev.c,v 1.98.2.11 2019/01/22 07:42:42 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.10 2019/01/18 00:01:02 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cryptodev.c,v 1.98.2.11 2019/01/22 07:42:42 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -219,19 +219,6 @@ cryptof_write(file_t *fp, off_t *poff,
return EIO;
}
-/*
- * Hook the ocryptodev 50 compat code
- *
- * This is a bit messy because we need to pass local stuff to the
- * compat routines. The compat routines may be built-in to a
- * 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, int,
- (struct file *fp, u_long cmd, void *data));
-MODULE_CALL_HOOK(ocryptof_50_hook, int,
- (struct file *fp, u_long cmd, void *data), (fp, cmd, data), enosys());
-
/* ARGSUSED */
int
cryptof_ioctl(struct file *fp, u_long cmd, void *data)
@@ -453,7 +440,9 @@ reterr:
break;
default:
/* Check for backward compatible commands */
- error = ocryptof_50_hook_call(fp, cmd, data);
+
+ MODULE_CALL_HOOK(ocryptof_50_hook, (fp, cmd, data),
+ enosys(), error);
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.51 src/sys/sys/compat_stub.h:1.1.2.52
--- src/sys/sys/compat_stub.h:1.1.2.51 Fri Jan 18 00:01:02 2019
+++ src/sys/sys/compat_stub.h Tue Jan 22 07:42:42 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.51 2019/01/18 00:01:02 pgoyette Exp $ */
+/* $NetBSD: compat_stub.h,v 1.1.2.52 2019/01/22 07:42:42 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -266,7 +266,7 @@ extern int kern_sig_43_pgid_mask;
struct ps_strings;
MODULE_HOOK(kern_proc_32_copyin_hook, int,
(struct proc *, struct ps_strings *));
-MODULE_HOOK(kern_proc_32_base_hook, void, (char **, size_t, vaddr_t *));
+MODULE_HOOK(kern_proc_32_base_hook, vaddr_t, (char **, size_t));
/*
* Hook to allow sparc fpu code to see if a process is using sunos
Index: src/sys/sys/module_hook.h
diff -u src/sys/sys/module_hook.h:1.1.2.13 src/sys/sys/module_hook.h:1.1.2.14
--- src/sys/sys/module_hook.h:1.1.2.13 Mon Jan 21 06:49:28 2019
+++ src/sys/sys/module_hook.h Tue Jan 22 07:42:42 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: module_hook.h,v 1.1.2.13 2019/01/21 06:49:28 pgoyette Exp $ */
+/* $NetBSD: module_hook.h,v 1.1.2.14 2019/01/22 07:42:42 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -104,16 +104,9 @@ static void (hook ## _unset)(void) \
pserialize_destroy(hook.psz); \
}
-#define MODULE_CALL_HOOK_DECL(hook, type, decl) \
-type \
-hook ## _call decl;
-
-#define MODULE_CALL_HOOK(hook, type, decl, args, default) \
-type \
-hook ## _call decl \
-{ \
+#define MODULE_CALL_HOOK(hook, args, default, retval) \
+do { \
bool __hooked; \
- type __hook_retval; \
int __hook_s; \
\
__hook_s = pserialize_read_enter(); \
@@ -125,19 +118,16 @@ hook ## _call decl \
pserialize_read_exit(__hook_s); \
\
if (__hooked) { \
- __hook_retval = (*hook.f)args; \
+ retval = (*hook.f)args; \
localcount_release(&hook.lc, &hook.cv, \
&hook.mtx); \
} else { \
- __hook_retval = default; \
+ retval = default; \
} \
- return __hook_retval; \
-}
+} while /* CONSTCOND */ (0)
-#define MODULE_CALL_VOID_HOOK(hook, decl, args, default) \
-void \
-hook ## _call decl \
-{ \
+#define MODULE_CALL_VOID_HOOK(hook, args, default) \
+do { \
bool __hooked; \
int __hook_s; \
\
@@ -156,6 +146,6 @@ hook ## _call decl \
} else { \
default; \
} \
-}
+} while /* CONSTCOND */ (0)
#endif /* _SYS_MODULE_HOOK_H */
Index: src/sys/sys/tty.h
diff -u src/sys/sys/tty.h:1.94.2.3 src/sys/sys/tty.h:1.94.2.4
--- src/sys/sys/tty.h:1.94.2.3 Mon Oct 15 09:51:34 2018
+++ src/sys/sys/tty.h Tue Jan 22 07:42:42 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: tty.h,v 1.94.2.3 2018/10/15 09:51:34 pgoyette Exp $ */
+/* $NetBSD: tty.h,v 1.94.2.4 2019/01/22 07:42:42 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -313,8 +313,6 @@ bool ttypull(struct tty *);
int clalloc(struct clist *, int, int);
void clfree(struct clist *);
-int stub_compat_ptmioctl_60(dev_t, u_long, void *, int, struct lwp *);
-
/* overwritten to be non-null if ptm(4) is present */
struct ptm_pty;