Module Name:    src
Committed By:   pgoyette
Date:           Mon Sep 24 22:56:45 UTC 2018

Modified Files:
        src/sys/arch/amd64/amd64 [pgoyette-compat]: netbsd32_machdep.c
            netbsd32_machdep_16.c
        src/sys/compat/netbsd32 [pgoyette-compat]: netbsd32.h

Log Message:
Convert yet another function pointer to the MP-safe mechanism


To generate a diff of this commit:
cvs rdiff -u -r1.115.2.3 -r1.115.2.4 \
    src/sys/arch/amd64/amd64/netbsd32_machdep.c
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 \
    src/sys/arch/amd64/amd64/netbsd32_machdep_16.c
cvs rdiff -u -r1.116.2.12 -r1.116.2.13 src/sys/compat/netbsd32/netbsd32.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.3 src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.4
--- src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.115.2.3	Fri Sep 14 08:38:37 2018
+++ src/sys/arch/amd64/amd64/netbsd32_machdep.c	Mon Sep 24 22:56:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.115.2.3 2018/09/14 08:38:37 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.115.2.4 2018/09/24 22:56:45 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.3 2018/09/14 08:38:37 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.115.2.4 2018/09/24 22:56:45 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -270,13 +270,18 @@ netbsd32_sendsig_siginfo(const ksiginfo_
 	netbsd32_buildcontext(l, tf, fp, catcher, onstack);
 }
 
-void (*vec_netbsd32_sendsig)(const ksiginfo_t *, const sigset_t *);
+MODULE_CALL_HOOK_DECL(netbsd32_sendsig_hook, f,
+    (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
+    netbsd32_sendsig_siginfo());
+MODULE_CALL_HOOK(netbsd32_sendsig_hook, f,
+    (const ksiginfo_t *ksi, const sigset_t *mask), (ksi, mask),
+    netbsd32_sendsig_siginfo());
 
 void
 netbsd32_sendsig(const ksiginfo_t *ksi, const sigset_t *mask)
 {
 
-	(*vec_netbsd32_sendsig)(ksi, mask);
+	netbsd32_sendsig_hook_f_call(ksi, mask);
 }
 
 #ifdef COREDUMP

Index: src/sys/arch/amd64/amd64/netbsd32_machdep_16.c
diff -u src/sys/arch/amd64/amd64/netbsd32_machdep_16.c:1.1.2.2 src/sys/arch/amd64/amd64/netbsd32_machdep_16.c:1.1.2.3
--- src/sys/arch/amd64/amd64/netbsd32_machdep_16.c:1.1.2.2	Fri Sep 14 08:38:37 2018
+++ src/sys/arch/amd64/amd64/netbsd32_machdep_16.c	Mon Sep 24 22:56:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep_16.c,v 1.1.2.2 2018/09/14 08:38:37 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32_machdep_16.c,v 1.1.2.3 2018/09/24 22:56:45 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep_16.c,v 1.1.2.2 2018/09/14 08:38:37 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep_16.c,v 1.1.2.3 2018/09/24 22:56:45 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -85,6 +85,8 @@ int check_sigcontext32(struct lwp *, con
 
 void netbsd32_sendsig_16(const ksiginfo_t *, const sigset_t *);
 
+struct netbsd32_sendsig_hook_t netbsd32_sendsig_hook;
+
 static void
 netbsd32_sendsig_sigcontext(const ksiginfo_t *ksi, const sigset_t *mask)
 {
@@ -240,18 +242,19 @@ compat_16_netbsd32___sigreturn14(struct 
 	return (EJUSTRETURN);
 }
 
-extern void (*vec_netbsd32_sendsig)(const ksiginfo_t *, const sigset_t *);
+MODULE_HOOK_SET(netbsd32_sendsig_hook, "nb32_16", netbsd32_sendsig_16);
+MODULE_HOOK_UNSET(netbsd32_sendsig_hook);
 
 void
 netbsd32_machdep_md_16_init(void)
 {
 
-	vec_netbsd32_sendsig = netbsd32_sendsig_16;
+	netbsd32_sendsig_hook_set();
 }
 
 void
 netbsd32_machdep_md_16_fini(void)
 {
 
-	vec_netbsd32_sendsig = netbsd32_sendsig_siginfo;
+	netbsd32_sendsig_hook_set();
 }

Index: src/sys/compat/netbsd32/netbsd32.h
diff -u src/sys/compat/netbsd32/netbsd32.h:1.116.2.12 src/sys/compat/netbsd32/netbsd32.h:1.116.2.13
--- src/sys/compat/netbsd32/netbsd32.h:1.116.2.12	Sun Sep 23 11:57:09 2018
+++ src/sys/compat/netbsd32/netbsd32.h	Mon Sep 24 22:56:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32.h,v 1.116.2.12 2018/09/23 11:57:09 pgoyette Exp $	*/
+/*	$NetBSD: netbsd32.h,v 1.116.2.13 2018/09/24 22:56:45 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green
@@ -1167,7 +1167,7 @@ struct iovec *netbsd32_get_iov(struct ne
 SYSCTL_SETUP_PROTO(netbsd32_sysctl_emul_setup);
 #endif /* SYSCTL_SETUP_PROTO */
 
-extern void (*vec_netbsd32_sendsig)(const ksiginfo_t *, const sigset_t *);
+MODULE_HOOK(netbsd32_sendsig_hook, (const ksiginfo_t *, const sigset_t *);
 
 extern struct sysent netbsd32_sysent[];
 extern const uint32_t netbsd32_sysent_nomodbits[]; 

Reply via email to