Module Name: src
Committed By: martin
Date: Wed Aug 9 17:42:06 UTC 2023
Modified Files:
src/external/cddl/osnet/sys/sys [netbsd-10]: kcondvar.h
src/share/man/man4 [netbsd-10]: ddb.4
src/sys/arch/alpha/include [netbsd-10]: mutex.h
src/sys/arch/amiga/dev [netbsd-10]: grfabs_cc.c
src/sys/arch/amiga/include [netbsd-10]: intr.h
src/sys/arch/arm/include [netbsd-10]: cpu.h mutex.h
src/sys/arch/arm/xscale [netbsd-10]: pxa2x0_intr.c pxa2x0_intr.h
src/sys/arch/atari/include [netbsd-10]: intr.h
src/sys/arch/cesfic/include [netbsd-10]: intr.h
src/sys/arch/evbarm/g42xxeb [netbsd-10]: obio.c
src/sys/arch/evbarm/include [netbsd-10]: intr.h
src/sys/arch/evbarm/lubbock [netbsd-10]: obio.c sacc_obio.c
src/sys/arch/hp300/include [netbsd-10]: intr.h
src/sys/arch/hppa/include [netbsd-10]: intr.h mutex.h
src/sys/arch/ia64/acpi [netbsd-10]: madt.c
src/sys/arch/ia64/include [netbsd-10]: mutex.h sapicvar.h
src/sys/arch/luna68k/include [netbsd-10]: intr.h
src/sys/arch/m68k/include [netbsd-10]: mutex.h
src/sys/arch/mac68k/include [netbsd-10]: intr.h
src/sys/arch/mips/include [netbsd-10]: mutex.h
src/sys/arch/mvme68k/include [netbsd-10]: intr.h
src/sys/arch/news68k/include [netbsd-10]: intr.h
src/sys/arch/next68k/include [netbsd-10]: intr.h
src/sys/arch/or1k/include [netbsd-10]: mutex.h
src/sys/arch/powerpc/include [netbsd-10]: mutex.h
src/sys/arch/riscv/include [netbsd-10]: mutex.h
src/sys/arch/sh3/include [netbsd-10]: mutex.h
src/sys/arch/sparc/include [netbsd-10]: cpu.h mutex.h psl.h
src/sys/arch/sparc64/include [netbsd-10]: cpu.h mutex.h psl.h
src/sys/arch/sun68k/include [netbsd-10]: intr.h
src/sys/arch/usermode/include [netbsd-10]: mutex.h
src/sys/arch/vax/include [netbsd-10]: intr.h mutex.h
src/sys/arch/x68k/include [netbsd-10]: intr.h
src/sys/arch/x86/include [netbsd-10]: cpu.h mutex.h
src/sys/ddb [netbsd-10]: db_command.c ddb.h files.ddb
src/sys/external/bsd/drm2/include/linux [netbsd-10]: idr.h
src/sys/kern [netbsd-10]: kern_core.c
src/sys/opencrypto [netbsd-10]: cryptodev.h
src/sys/sys [netbsd-10]: cpu_data.h ksem.h lua.h proc.h rwlock.h
sched.h
src/sys/uvm [netbsd-10]: uvm_param.h
src/usr.sbin/crash [netbsd-10]: Makefile
Added Files:
src/sys/ddb [netbsd-10]: db_syncobj.c db_syncobj.h
Log Message:
Pull up following revision(s) (requested by maya in ticket #316):
sys/arch/m68k/include/mutex.h: revision 1.13
sys/arch/arm/include/cpu.h: revision 1.125
sys/arch/sun68k/include/intr.h: revision 1.21
sys/arch/arm/include/mutex.h: revision 1.28
sys/sys/rwlock.h: revision 1.18
sys/arch/powerpc/include/mutex.h: revision 1.7
sys/arch/arm/include/mutex.h: revision 1.29
sys/arch/powerpc/include/mutex.h: revision 1.8
sys/uvm/uvm_param.h: revision 1.42
sys/sys/ksem.h: revision 1.16
sys/arch/x86/include/mutex.h: revision 1.10
sys/sys/proc.h: revision 1.372
sys/sys/ksem.h: revision 1.17
sys/arch/ia64/include/mutex.h: revision 1.8
sys/arch/evbarm/include/intr.h: revision 1.29
sys/sys/lua.h: revision 1.9
sys/arch/next68k/include/intr.h: revision 1.23
sys/arch/ia64/include/mutex.h: revision 1.9
sys/arch/hp300/include/intr.h: revision 1.35
sys/arch/hp300/include/intr.h: revision 1.36
sys/arch/sparc/include/cpu.h: revision 1.111
sys/arch/hppa/include/mutex.h: revision 1.16
sys/arch/vax/include/intr.h: revision 1.31
sys/arch/hppa/include/mutex.h: revision 1.17
sys/arch/news68k/include/intr.h: revision 1.28
sys/arch/hppa/include/mutex.h: revision 1.18
sys/arch/hppa/include/intr.h: revision 1.3
sys/arch/hppa/include/mutex.h: revision 1.19
sys/arch/hppa/include/intr.h: revision 1.4
sys/sys/sched.h: revision 1.92
sys/opencrypto/cryptodev.h: revision 1.51
sys/arch/vax/include/mutex.h: revision 1.20
sys/arch/sparc64/include/mutex.h: revision 1.10
sys/arch/ia64/include/sapicvar.h: revision 1.2
sys/arch/riscv/include/mutex.h: revision 1.5
sys/arch/amiga/dev/grfabs_cc.c: revision 1.39
sys/external/bsd/drm2/include/linux/idr.h: revision 1.11
sys/arch/riscv/include/mutex.h: revision 1.6
sys/ddb/files.ddb: revision 1.16
sys/arch/mac68k/include/intr.h: revision 1.32
share/man/man4/ddb.4: revision 1.203
sys/ddb/db_command.c: revision 1.183
sys/arch/mips/include/mutex.h: revision 1.10
sys/ddb/db_command.c: revision 1.184
sys/arch/x68k/include/intr.h: revision 1.22
sys/arch/sparc/include/psl.h: revision 1.51
sys/arch/or1k/include/mutex.h: revision 1.4
sys/arch/mips/include/mutex.h: revision 1.11
sys/arch/arm/xscale/pxa2x0_intr.h: revision 1.16
sys/arch/sparc64/include/cpu.h: revision 1.134
sys/arch/sparc/include/psl.h: revision 1.52
sys/arch/or1k/include/mutex.h: revision 1.5
sys/arch/mvme68k/include/intr.h: revision 1.22
sys/arch/luna68k/include/intr.h: revision 1.16
external/cddl/osnet/sys/sys/kcondvar.h: revision 1.6
sys/arch/sparc/include/mutex.h: revision 1.12
sys/arch/sparc/include/mutex.h: revision 1.13
sys/arch/usermode/include/mutex.h: revision 1.5
sys/arch/usermode/include/mutex.h: revision 1.6
sys/kern/kern_core.c: revision 1.38
usr.sbin/crash/Makefile: revision 1.49
sys/arch/amiga/include/intr.h: revision 1.23
sys/arch/alpha/include/mutex.h: revision 1.12
sys/arch/alpha/include/mutex.h: revision 1.13
sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.16
sys/ddb/ddb.h: revision 1.6
sys/arch/sparc64/include/mutex.h: revision 1.8
sys/arch/sh3/include/mutex.h: revision 1.12
sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.17
sys/ddb/db_syncobj.c: revision 1.1
sys/arch/vax/include/mutex.h: revision 1.18
sys/arch/sparc64/include/psl.h: revision 1.63
sys/arch/sparc64/include/mutex.h: revision 1.9
sys/arch/sh3/include/mutex.h: revision 1.13
sys/arch/evbarm/lubbock/obio.c: revision 1.13
sys/arch/atari/include/intr.h: revision 1.23
sys/ddb/db_syncobj.c: revision 1.2
sys/arch/vax/include/mutex.h: revision 1.19
sys/arch/evbarm/g42xxeb/obio.c: revision 1.14
sys/arch/evbarm/g42xxeb/obio.c: revision 1.15
sys/arch/cesfic/include/intr.h: revision 1.14
sys/ddb/db_syncobj.h: revision 1.1
sys/arch/x86/include/cpu.h: revision 1.134
sys/arch/evbarm/g42xxeb/obio.c: revision 1.16
sys/arch/cesfic/include/intr.h: revision 1.15
sys/arch/arm/xscale/pxa2x0_intr.c: revision 1.26
sys/sys/cpu_data.h: revision 1.54
sys/arch/m68k/include/mutex.h: revision 1.12
sys/arch/ia64/acpi/madt.c: revision 1.6
sys/rwlock.h: Make this more self-contained for bool.
machine/mutex.h: Sprinkle includes so this can be used by crash(8).
ddb: New `show all tstiles' command.
Shows who's waiting for which locks and what the owner is up to.
Include psl.h for ipl_cookie_t if __MUTEX_PRIVATE
sys: Rip <sys/resourcevar.h> out of <uvm/uvm_param.h>.
And thus out of <sys/param.h>, which is exceedingly overused and
fragile and delenda est.
Should fix (some) issues with the recent inclusion of machine/lock.h
in various machine/mutex.h files.
arm/mutex.h: Need machine/intr.h, machine/lock.h.
For ipl_cookie_t and __cpu_simple_lock_t.
evbarm/intr.h: Define ipl_cookie_t before including ARM_INTR_IMPL.
Otherwise arm/mutex.h doesn't work, due to a cyclic dependency which
should really be fixed.
opencrypto/cryptodev.h: Fix includes.
- Move sys/condvar.h under #ifdef _KERNEL.
- Add some other necessary includes and forward declarations.
- Sort.
hp300/intr.h: Fix missing includes.
linux/idr.h: Need <sys/mutex.h> for kmutex_t.
amiga/intr.h: Don't define spl*() functions if !_KERNEL.
This is used by crash(8) now, and what's important is ipl_cookie_t.
cesfic/intr.h: Expose ipl_cookie_t to userland for crash(8).
cesfic/intr.h: Expose ipl_cookie_t to userland only with _KMEMUSER.
Probably not necessary but let's be a little more cautious about
this.
atari/intr.h: Expose ipl_cookie_t with _KMEMUSER for crash(8).
arm/cpu.h: Need sys/param.h for COHERENCY_UNIT.
Nix machine/param.h -- not meant to be used directly, pulled in by
sys/param.h.
Move the definition of ipl_cookie_t out of the kernel-only sections,
some _KMEMUSER applications need it.
ddb: Cast pointer to uintptr_t first before db_expr_t.
hppa/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
luna68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
mvme68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
news68k/intr.h: Fix includes. Put some definitions under _KERNEL.
next68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
sys/ksem.h: Hack around fstat(8) abuse of _KERNEL.
sun68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
vax/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
x68k/intr.h: Put functions under _KERNEL so crash(8) can use this.
Make ipl_cookie_t visible for _KMEMUSER userland applications.
fix editor mishap in previous
Explicitly include <sys/mutex.h> for kmutex_t.
Replace kmutex_t * (which may be undefined here) with struct kmutex *,
suggested by Taylor.
hp300/intr.h: Put most of this under #ifdef _KERNEL.
Only ipl_cookie_t really needs to be exposed now, for crash(8).
mac68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
Make inclusion of sys/intr.h explicit for spl*.
fix hppa and vax builds.
machine/lock.h isn't necessary for __cpu_simple_lock_t, it's in
sys/types.h. avoids cpu_data.h vs sched.h include order issues.
move the hppa ipl_t typedef with the moved usage of it.
machine/mutex.h: Sprinkle sys/types.h, omit machine/lock.h.
Turns out machine/lock.h is not needed for __cpu_simple_lock_t, which
always comes from sys/types.h. And, really, sys/types.h (or at least
sys/stdint.h) is needed for uintN_t and uintptr_t.
ddb: Cast pointer to uintptr_t, then to db_expr_t.
Avoids warnings about conversion between pointer and integer of
different size on some architectures.
re-fix hppa builds.
this file uses __cpu_simple_lock(), not just the underlying type,
so it does need machine/lock.h.
Break cycle by using `struct kmutex *' instead of `kmutex_t *'.
sys/sched.h included sys/mutex.h
which includes sys/intr.h
which includes machine/intr.h
which on cats includes arm/footbridge/footbridge_intr.h
which includes arm/cpu.h
which includes sys/cpu_data.h
which includes sys/sched.h
But there was never any real need for sys/mutex.h in sys/sched.h,
because it only uses pointers to the opaque struct kmutex. Cycle
broken by using `struct kmutex *' instead of pulling in sys/mutex.h
for the definition of kmutex_t.
Side effect: This revealed that sys/cpu_data.h needed sys/intr.h
(which was pulled in accidentally by sys/mutex.h via sys/sched.h) for
SOFTINT_COUNT. Also revealed some other machine/cpu.h header files
were missing includes of sys/mutex.h for kmutex_t.
ia64: Need sys/types.h for u_int, vaddr_t; sys/mutex.h for kmutex_t.
explicitly include no longer implicitly included sys/mutex.h.
arm/xscale: Use sys/bitops.h fls32 - 1 instead of 31 - __builtin_clz.
Sidesteps namespace collision with `#define bits ...' in net/zlib.c.
complete the previous - there were two calls to find_first_bit() to fix.
arm/xscale: Missed a spot with previous find_first_bit commit.
evbarm/g42xxeb: Fix off-by-one in previous.
The original find_first_bit(x) was 31 - __builtin_clz((uint32_t)x),
which is equivalent to fls32(x) - 1, not to fls32(x).
Note that fls32 is 1-based and returns 0 for x=0.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.5.2.1 src/external/cddl/osnet/sys/sys/kcondvar.h
cvs rdiff -u -r1.202 -r1.202.2.1 src/share/man/man4/ddb.4
cvs rdiff -u -r1.11 -r1.11.4.1 src/sys/arch/alpha/include/mutex.h
cvs rdiff -u -r1.37 -r1.37.4.1 src/sys/arch/amiga/dev/grfabs_cc.c
cvs rdiff -u -r1.22 -r1.22.20.1 src/sys/arch/amiga/include/intr.h
cvs rdiff -u -r1.123 -r1.123.4.1 src/sys/arch/arm/include/cpu.h
cvs rdiff -u -r1.27 -r1.27.4.1 src/sys/arch/arm/include/mutex.h
cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/arch/arm/xscale/pxa2x0_intr.c
cvs rdiff -u -r1.15 -r1.15.34.1 src/sys/arch/arm/xscale/pxa2x0_intr.h
cvs rdiff -u -r1.22 -r1.22.16.1 src/sys/arch/atari/include/intr.h
cvs rdiff -u -r1.13 -r1.13.78.1 src/sys/arch/cesfic/include/intr.h
cvs rdiff -u -r1.13 -r1.13.6.1 src/sys/arch/evbarm/g42xxeb/obio.c
cvs rdiff -u -r1.28 -r1.28.20.1 src/sys/arch/evbarm/include/intr.h
cvs rdiff -u -r1.12 -r1.12.6.1 src/sys/arch/evbarm/lubbock/obio.c
cvs rdiff -u -r1.15 -r1.15.6.1 src/sys/arch/evbarm/lubbock/sacc_obio.c
cvs rdiff -u -r1.34 -r1.34.86.1 src/sys/arch/hp300/include/intr.h
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/arch/hppa/include/intr.h
cvs rdiff -u -r1.15 -r1.15.26.1 src/sys/arch/hppa/include/mutex.h
cvs rdiff -u -r1.5 -r1.5.2.1 src/sys/arch/ia64/acpi/madt.c
cvs rdiff -u -r1.7 -r1.7.4.1 src/sys/arch/ia64/include/mutex.h
cvs rdiff -u -r1.1 -r1.1.96.1 src/sys/arch/ia64/include/sapicvar.h
cvs rdiff -u -r1.15 -r1.15.60.1 src/sys/arch/luna68k/include/intr.h
cvs rdiff -u -r1.11 -r1.11.4.1 src/sys/arch/m68k/include/mutex.h
cvs rdiff -u -r1.31 -r1.31.112.1 src/sys/arch/mac68k/include/intr.h
cvs rdiff -u -r1.9 -r1.9.4.1 src/sys/arch/mips/include/mutex.h
cvs rdiff -u -r1.21 -r1.21.32.1 src/sys/arch/mvme68k/include/intr.h
cvs rdiff -u -r1.27 -r1.27.32.1 src/sys/arch/news68k/include/intr.h
cvs rdiff -u -r1.22 -r1.22.32.1 src/sys/arch/next68k/include/intr.h
cvs rdiff -u -r1.3 -r1.3.4.1 src/sys/arch/or1k/include/mutex.h
cvs rdiff -u -r1.6 -r1.6.26.1 src/sys/arch/powerpc/include/mutex.h
cvs rdiff -u -r1.4 -r1.4.4.1 src/sys/arch/riscv/include/mutex.h
cvs rdiff -u -r1.11 -r1.11.4.1 src/sys/arch/sh3/include/mutex.h
cvs rdiff -u -r1.110 -r1.110.4.1 src/sys/arch/sparc/include/cpu.h
cvs rdiff -u -r1.11 -r1.11.26.1 src/sys/arch/sparc/include/mutex.h
cvs rdiff -u -r1.50 -r1.50.4.1 src/sys/arch/sparc/include/psl.h
cvs rdiff -u -r1.133 -r1.133.4.1 src/sys/arch/sparc64/include/cpu.h
cvs rdiff -u -r1.7 -r1.7.4.1 src/sys/arch/sparc64/include/mutex.h
cvs rdiff -u -r1.62 -r1.62.4.1 src/sys/arch/sparc64/include/psl.h
cvs rdiff -u -r1.20 -r1.20.114.1 src/sys/arch/sun68k/include/intr.h
cvs rdiff -u -r1.4 -r1.4.26.1 src/sys/arch/usermode/include/mutex.h
cvs rdiff -u -r1.30 -r1.30.4.1 src/sys/arch/vax/include/intr.h
cvs rdiff -u -r1.17 -r1.17.4.1 src/sys/arch/vax/include/mutex.h
cvs rdiff -u -r1.21 -r1.21.60.1 src/sys/arch/x68k/include/intr.h
cvs rdiff -u -r1.133 -r1.133.4.1 src/sys/arch/x86/include/cpu.h
cvs rdiff -u -r1.9 -r1.9.22.1 src/sys/arch/x86/include/mutex.h
cvs rdiff -u -r1.181.4.1 -r1.181.4.2 src/sys/ddb/db_command.c
cvs rdiff -u -r0 -r1.2.2.2 src/sys/ddb/db_syncobj.c
cvs rdiff -u -r0 -r1.1.2.2 src/sys/ddb/db_syncobj.h
cvs rdiff -u -r1.5 -r1.5.20.1 src/sys/ddb/ddb.h
cvs rdiff -u -r1.15 -r1.15.4.1 src/sys/ddb/files.ddb
cvs rdiff -u -r1.10 -r1.10.2.1 src/sys/external/bsd/drm2/include/linux/idr.h
cvs rdiff -u -r1.37 -r1.37.4.1 src/sys/kern/kern_core.c
cvs rdiff -u -r1.50 -r1.50.4.1 src/sys/opencrypto/cryptodev.h
cvs rdiff -u -r1.52 -r1.52.20.1 src/sys/sys/cpu_data.h
cvs rdiff -u -r1.15 -r1.15.30.1 src/sys/sys/ksem.h
cvs rdiff -u -r1.8 -r1.8.48.1 src/sys/sys/lua.h
cvs rdiff -u -r1.370.4.1 -r1.370.4.2 src/sys/sys/proc.h
cvs rdiff -u -r1.17 -r1.17.2.1 src/sys/sys/rwlock.h
cvs rdiff -u -r1.91 -r1.91.2.1 src/sys/sys/sched.h
cvs rdiff -u -r1.41 -r1.41.20.1 src/sys/uvm/uvm_param.h
cvs rdiff -u -r1.46.6.1 -r1.46.6.2 src/usr.sbin/crash/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/sys/sys/kcondvar.h
diff -u src/external/cddl/osnet/sys/sys/kcondvar.h:1.5 src/external/cddl/osnet/sys/sys/kcondvar.h:1.5.2.1
--- src/external/cddl/osnet/sys/sys/kcondvar.h:1.5 Sat Jul 30 12:59:31 2022
+++ src/external/cddl/osnet/sys/sys/kcondvar.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kcondvar.h,v 1.5 2022/07/30 12:59:31 riastradh Exp $ */
+/* $NetBSD: kcondvar.h,v 1.5.2.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@ typedef enum {
#define cv_init(a, b, c, d) cv_init(a, #a)
static inline clock_t
-cv_timedwait_hires(kcondvar_t *cvp, kmutex_t *mp, hrtime_t tim, hrtime_t res,
+cv_timedwait_hires(kcondvar_t *cvp, struct kmutex *mp, hrtime_t tim, hrtime_t res,
int flag)
{
extern int hz;
@@ -58,7 +58,7 @@ cv_timedwait_hires(kcondvar_t *cvp, kmut
}
static inline clock_t
-cv_reltimedwait(kcondvar_t *cvp, kmutex_t *mp, clock_t delta, time_res_t res)
+cv_reltimedwait(kcondvar_t *cvp, struct kmutex *mp, clock_t delta, time_res_t res)
{
cv_wait(cvp, mp);
@@ -67,7 +67,7 @@ cv_reltimedwait(kcondvar_t *cvp, kmutex_
#else
-extern clock_t cv_timedwait_hires(kcondvar_t *, kmutex_t *, hrtime_t, hrtime_t,
+extern clock_t cv_timedwait_hires(kcondvar_t *, struct kmutex *, hrtime_t, hrtime_t,
int);
#endif /* _KERNEL */
Index: src/share/man/man4/ddb.4
diff -u src/share/man/man4/ddb.4:1.202 src/share/man/man4/ddb.4:1.202.2.1
--- src/share/man/man4/ddb.4:1.202 Thu Apr 28 07:17:52 2022
+++ src/share/man/man4/ddb.4 Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-.\" $NetBSD: ddb.4,v 1.202 2022/04/28 07:17:52 msaitoh Exp $
+.\" $NetBSD: ddb.4,v 1.202.2.1 2023/08/09 17:42:03 martin Exp $
.\"
.\" Copyright (c) 1997 - 2019 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -616,6 +616,14 @@ LWP name and wait channel message.
LWPs currently running on a CPU are marked with the '\&>' sign.
This is the default.
.El
+.It Ic show all tstiles Ns Oo Cm /t Oc
+Display all lwps that are currently waiting in turnstiles to acquire
+locks, which locks they are waiting for, and who currently holds them.
+Valid modifiers:
+.Bl -tag -width 3n
+.It Cm /t
+show a stack trace of the lwp that currently holds each lock
+.El
.It Ic show routes
Dump the entire
.Dv AF_INET
Index: src/sys/arch/alpha/include/mutex.h
diff -u src/sys/arch/alpha/include/mutex.h:1.11 src/sys/arch/alpha/include/mutex.h:1.11.4.1
--- src/sys/arch/alpha/include/mutex.h:1.11 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/alpha/include/mutex.h Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.11 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.11.4.1 2023/08/09 17:42:05 martin Exp $ */
/*-
* Copyright (c) 2002, 2006, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _ALPHA_MUTEX_H_
#define _ALPHA_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -40,6 +42,8 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
+#include <machine/intr.h>
+
struct kmutex {
union {
volatile uintptr_t mtxa_owner;
Index: src/sys/arch/amiga/dev/grfabs_cc.c
diff -u src/sys/arch/amiga/dev/grfabs_cc.c:1.37 src/sys/arch/amiga/dev/grfabs_cc.c:1.37.4.1
--- src/sys/arch/amiga/dev/grfabs_cc.c:1.37 Sat Mar 26 17:15:18 2022
+++ src/sys/arch/amiga/dev/grfabs_cc.c Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: grfabs_cc.c,v 1.37 2022/03/26 17:15:18 andvar Exp $ */
+/* $NetBSD: grfabs_cc.c,v 1.37.4.1 2023/08/09 17:42:03 martin Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@@ -38,12 +38,13 @@
#include "opt_amigaccgrf.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: grfabs_cc.c,v 1.37 2022/03/26 17:15:18 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: grfabs_cc.c,v 1.37.4.1 2023/08/09 17:42:03 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/errno.h>
#include <sys/queue.h>
+#include <sys/intr.h>
#include <amiga/amiga/custom.h>
#include <amiga/amiga/cc.h>
Index: src/sys/arch/amiga/include/intr.h
diff -u src/sys/arch/amiga/include/intr.h:1.22 src/sys/arch/amiga/include/intr.h:1.22.20.1
--- src/sys/arch/amiga/include/intr.h:1.22 Mon Aug 10 10:59:33 2020
+++ src/sys/arch/amiga/include/intr.h Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.22 2020/08/10 10:59:33 rin Exp $ */
+/* $NetBSD: intr.h,v 1.22.20.1 2023/08/09 17:42:05 martin Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -58,6 +58,8 @@ typedef struct {
uint16_t _ipl;
} ipl_cookie_t;
+#ifdef _KERNEL
+
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
@@ -105,4 +107,6 @@ extern int _spllkm7(void);
#define splx(s) _spl(s)
+#endif /* _KERNEL */
+
#endif /* !_AMIGA_INTR_H_ */
Index: src/sys/arch/arm/include/cpu.h
diff -u src/sys/arch/arm/include/cpu.h:1.123 src/sys/arch/arm/include/cpu.h:1.123.4.1
--- src/sys/arch/arm/include/cpu.h:1.123 Sat Jun 25 12:41:56 2022
+++ src/sys/arch/arm/include/cpu.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.123 2022/06/25 12:41:56 jmcneill Exp $ */
+/* $NetBSD: cpu.h,v 1.123.4.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 1994-1996 Mark Brinicombe.
@@ -150,6 +150,8 @@ static inline void set_curcpl(int);
static inline void cpu_dosoftints(void);
#endif
+#include <sys/param.h>
+
#ifdef _KMEMUSER
#include <sys/intr.h>
#endif
@@ -158,8 +160,6 @@ static inline void cpu_dosoftints(void);
#include <sys/device_if.h>
#include <sys/evcnt.h>
-#include <machine/param.h>
-
/*
* Cache info variables.
*/
Index: src/sys/arch/arm/include/mutex.h
diff -u src/sys/arch/arm/include/mutex.h:1.27 src/sys/arch/arm/include/mutex.h:1.27.4.1
--- src/sys/arch/arm/include/mutex.h:1.27 Sun Dec 26 08:41:29 2021
+++ src/sys/arch/arm/include/mutex.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.27 2021/12/26 08:41:29 skrll Exp $ */
+/* $NetBSD: mutex.h,v 1.27.4.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,12 @@
#ifndef _ARM_MUTEX_H_
#define _ARM_MUTEX_H_
+#include <sys/types.h>
+
+#ifdef _KERNEL
+#include <machine/intr.h>
+#endif
+
/*
* The ARM mutex implementation is troublesome, because pre-v6 ARM lacks a
* compare-and-swap operation. However, there aren't any MP pre-v6 ARM
Index: src/sys/arch/arm/xscale/pxa2x0_intr.c
diff -u src/sys/arch/arm/xscale/pxa2x0_intr.c:1.25 src/sys/arch/arm/xscale/pxa2x0_intr.c:1.25.2.1
--- src/sys/arch/arm/xscale/pxa2x0_intr.c:1.25 Mon Oct 31 21:22:05 2022
+++ src/sys/arch/arm/xscale/pxa2x0_intr.c Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pxa2x0_intr.c,v 1.25 2022/10/31 21:22:05 andvar Exp $ */
+/* $NetBSD: pxa2x0_intr.c,v 1.25.2.1 2023/08/09 17:42:04 martin Exp $ */
/*
* Copyright (c) 2002 Genetec Corporation. All rights reserved.
@@ -39,12 +39,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pxa2x0_intr.c,v 1.25 2022/10/31 21:22:05 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pxa2x0_intr.c,v 1.25.2.1 2023/08/09 17:42:04 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
+#include <sys/bitops.h>
+
#include <machine/intr.h>
#include <machine/lock.h>
@@ -161,7 +163,7 @@ pxa2x0_irq_handler(void *arg)
/* get pending IRQs */
irqbits = read_icu(SAIPIC_IP);
- while ((irqno = find_first_bit(irqbits)) >= 0) {
+ while ((irqno = fls32(irqbits) - 1) >= 0) {
/* XXX: Should we handle IRQs in priority order? */
/* raise spl to stop interrupts of lower priorities */
Index: src/sys/arch/arm/xscale/pxa2x0_intr.h
diff -u src/sys/arch/arm/xscale/pxa2x0_intr.h:1.15 src/sys/arch/arm/xscale/pxa2x0_intr.h:1.15.34.1
--- src/sys/arch/arm/xscale/pxa2x0_intr.h:1.15 Wed Jan 24 09:04:45 2018
+++ src/sys/arch/arm/xscale/pxa2x0_intr.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pxa2x0_intr.h,v 1.15 2018/01/24 09:04:45 skrll Exp $ */
+/* $NetBSD: pxa2x0_intr.h,v 1.15.34.1 2023/08/09 17:42:04 martin Exp $ */
/* Derived from i80321_intr.h */
@@ -114,21 +114,6 @@ pxa2x0_spllower(int ipl)
return old;
}
-/*
- * An useful function for interrupt handlers.
- * XXX: This shouldn't be here.
- */
-static inline int
-find_first_bit(uint32_t bits)
-{
- /*
- * Since CLZ is available only on ARMv5, this isn't portable
- * to all ARM CPUs. This file is for PXA2[15]0 processor.
- */
- return 31 - __builtin_clz(bits);
-}
-
-
int _splraise(int);
int _spllower(int);
void splx(int);
Index: src/sys/arch/atari/include/intr.h
diff -u src/sys/arch/atari/include/intr.h:1.22 src/sys/arch/atari/include/intr.h:1.22.16.1
--- src/sys/arch/atari/include/intr.h:1.22 Fri Apr 2 12:11:41 2021
+++ src/sys/arch/atari/include/intr.h Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.22 2021/04/02 12:11:41 rin Exp $ */
+/* $NetBSD: intr.h,v 1.22.16.1 2023/08/09 17:42:05 martin Exp $ */
/*-
* Copyright (c) 1996, 1997, 2007 The NetBSD Foundation, Inc.
@@ -48,6 +48,12 @@
#define IST_EDGE 2 /* edge-triggered */
#define IST_LEVEL 3 /* level-triggered */
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+#endif
+
/*
* spl functions; all but spl0 are done in-line
*/
@@ -71,9 +77,6 @@ extern const uint16_t ipl2psl_table[NIPL
extern int idepth;
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/cesfic/include/intr.h
diff -u src/sys/arch/cesfic/include/intr.h:1.13 src/sys/arch/cesfic/include/intr.h:1.13.78.1
--- src/sys/arch/cesfic/include/intr.h:1.13 Thu Dec 22 15:06:17 2011
+++ src/sys/arch/cesfic/include/intr.h Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.13 2011/12/22 15:06:17 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.13.78.1 2023/08/09 17:42:05 martin Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -46,6 +46,14 @@
*/
#include <machine/psl.h>
+#if (defined(_KERNEL) || defined(_KMEMUSER)) && !defined(_LOCORE)
+
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+
+#endif
+
#if defined(_KERNEL) && !defined(_LOCORE)
/* spl0 requires checking for software interrupts */
#define spl1() _spl(PSL_S|PSL_IPL1)
@@ -83,9 +91,6 @@ int spl0(void);
extern const uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/evbarm/g42xxeb/obio.c
diff -u src/sys/arch/evbarm/g42xxeb/obio.c:1.13 src/sys/arch/evbarm/g42xxeb/obio.c:1.13.6.1
--- src/sys/arch/evbarm/g42xxeb/obio.c:1.13 Sat Aug 7 16:18:49 2021
+++ src/sys/arch/evbarm/g42xxeb/obio.c Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: obio.c,v 1.13 2021/08/07 16:18:49 thorpej Exp $ */
+/* $NetBSD: obio.c,v 1.13.6.1 2023/08/09 17:42:05 martin Exp $ */
/*
* Copyright (c) 2002, 2003, 2005 Genetec corp. All rights reserved.
@@ -35,6 +35,7 @@
#include <sys/device.h>
#include <sys/kernel.h>
#include <sys/reboot.h>
+#include <sys/bitops.h>
#include <machine/cpu.h>
#include <sys/bus.h>
@@ -98,7 +99,7 @@ obio_intr(void *arg)
#endif
for (pending = get_pending(sc);
- (irqno = find_first_bit(pending)) >= 0;
+ (irqno = fls32(pending) - 1) >= 0;
pending = get_pending(sc)) {
/* reset pending bit */
@@ -155,7 +156,7 @@ obio_softint(void *arg)
int psw;
psw = disable_interrupts(I32_bit);
- while ((irqno = find_first_bit(sc->sc_intr_pending)) >= 0) {
+ while ((irqno = fls32(sc->sc_intr_pending) - 1) >= 0) {
sc->sc_intr_pending &= ~(1U<<irqno);
restore_interrupts(psw);
Index: src/sys/arch/evbarm/include/intr.h
diff -u src/sys/arch/evbarm/include/intr.h:1.28 src/sys/arch/evbarm/include/intr.h:1.28.20.1
--- src/sys/arch/evbarm/include/intr.h:1.28 Mon Jul 27 10:37:58 2020
+++ src/sys/arch/evbarm/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.28 2020/07/27 10:37:58 skrll Exp $ */
+/* $NetBSD: intr.h,v 1.28.20.1 2023/08/09 17:42:02 martin Exp $ */
/*
* Copyright (c) 2001, 2003 Wasabi Systems, Inc.
@@ -71,6 +71,11 @@
#include <sys/queue.h>
+typedef uint8_t ipl_t;
+typedef struct {
+ ipl_t _ipl;
+} ipl_cookie_t;
+
#if defined(_MODULE)
int _splraise(int);
@@ -124,11 +129,6 @@ void splx(int);
#endif /* _MODULE */
-typedef uint8_t ipl_t;
-typedef struct {
- ipl_t _ipl;
-} ipl_cookie_t;
-
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
Index: src/sys/arch/evbarm/lubbock/obio.c
diff -u src/sys/arch/evbarm/lubbock/obio.c:1.12 src/sys/arch/evbarm/lubbock/obio.c:1.12.6.1
--- src/sys/arch/evbarm/lubbock/obio.c:1.12 Sat Aug 7 16:18:50 2021
+++ src/sys/arch/evbarm/lubbock/obio.c Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: obio.c,v 1.12 2021/08/07 16:18:50 thorpej Exp $ */
+/* $NetBSD: obio.c,v 1.12.6.1 2023/08/09 17:42:05 martin Exp $ */
/*
* Copyright (c) 2002, 2003 Genetec Corporation. All rights reserved.
@@ -35,13 +35,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: obio.c,v 1.12 2021/08/07 16:18:50 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: obio.c,v 1.12.6.1 2023/08/09 17:42:05 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/kernel.h>
#include <sys/reboot.h>
+#include <sys/bitops.h>
#include <machine/cpu.h>
#include <sys/bus.h>
@@ -163,7 +164,7 @@ obio_softintr(void *arg)
int spl_save = curcpl();
psw = disable_interrupts(I32_bit);
- while ((irqno = find_first_bit(sc->sc_obio_intr_pending)) >= 0) {
+ while ((irqno = fls32(sc->sc_obio_intr_pending) - 1) >= 0) {
sc->sc_obio_intr_pending &= ~(1U<<irqno);
restore_interrupts(psw);
Index: src/sys/arch/evbarm/lubbock/sacc_obio.c
diff -u src/sys/arch/evbarm/lubbock/sacc_obio.c:1.15 src/sys/arch/evbarm/lubbock/sacc_obio.c:1.15.6.1
--- src/sys/arch/evbarm/lubbock/sacc_obio.c:1.15 Sat Aug 7 16:18:50 2021
+++ src/sys/arch/evbarm/lubbock/sacc_obio.c Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: sacc_obio.c,v 1.15 2021/08/07 16:18:50 thorpej Exp $ */
+/* $NetBSD: sacc_obio.c,v 1.15.6.1 2023/08/09 17:42:05 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sacc_obio.c,v 1.15 2021/08/07 16:18:50 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sacc_obio.c,v 1.15.6.1 2023/08/09 17:42:05 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -45,6 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: sacc_obio.c,
#include <sys/syslog.h>
#include <sys/select.h>
#include <sys/device.h>
+#include <sys/bitops.h>
#include <net/if.h>
#include <net/if_dl.h>
@@ -197,7 +198,7 @@ sacc_obio_intr(void *arg)
bus_space_read_4(sc->sc_iot, sc->sc_ioh, SACCIC_INTSTATCLR1);
DPRINTF(("sacc_obio_intr_dispatch: %x %x\n", intstat.lo, intstat.hi));
- while ((i = find_first_bit(intstat.lo)) >= 0) {
+ while ((i = fls32(intstat.lo) - 1) >= 0) {
/*
* Clear intr status before calling intr handlers.
@@ -213,7 +214,7 @@ sacc_obio_intr(void *arg)
intstat.lo &= ~(1U<<i);
}
- while ((i = find_first_bit(intstat.hi)) >= 0) {
+ while ((i = fls32(intstat.hi) - 1) >= 0) {
bus_space_write_4(sc->sc_iot, sc->sc_ioh,
SACCIC_INTSTATCLR1, 1U<<i);
Index: src/sys/arch/hp300/include/intr.h
diff -u src/sys/arch/hp300/include/intr.h:1.34 src/sys/arch/hp300/include/intr.h:1.34.86.1
--- src/sys/arch/hp300/include/intr.h:1.34 Sun Mar 6 14:51:22 2011
+++ src/sys/arch/hp300/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.34 2011/03/06 14:51:22 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.34.86.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 1996, 1997, 1999 The NetBSD Foundation, Inc.
@@ -32,8 +32,12 @@
#ifndef _HP300_INTR_H_
#define _HP300_INTR_H_
+#include <sys/types.h>
+
#include <sys/evcnt.h>
#include <sys/queue.h>
+#include <sys/stdbool.h>
+
#include <machine/psl.h>
/*
@@ -78,6 +82,8 @@ typedef struct {
uint16_t _psl;
} ipl_cookie_t;
+#ifdef _KERNEL
+
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
@@ -133,4 +139,6 @@ void *intr_establish(int (*)(void *), vo
void intr_disestablish(void *);
void intr_dispatch(int);
+#endif /* _KERNEL */
+
#endif /* _HP300_INTR_H_ */
Index: src/sys/arch/hppa/include/intr.h
diff -u src/sys/arch/hppa/include/intr.h:1.2 src/sys/arch/hppa/include/intr.h:1.2.4.1
--- src/sys/arch/hppa/include/intr.h:1.2 Sat Feb 26 03:02:25 2022
+++ src/sys/arch/hppa/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.2 2022/02/26 03:02:25 macallan Exp $ */
+/* $NetBSD: intr.h,v 1.2.4.1 2023/08/09 17:42:02 martin Exp $ */
/* $OpenBSD: intr.h,v 1.26 2009/12/29 13:11:40 jsing Exp $ */
/*-
@@ -40,6 +40,13 @@
#ifndef _LOCORE
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef int ipl_t;
+typedef struct {
+ ipl_t _ipl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
struct cpu_info;
@@ -156,11 +163,6 @@ void spllower(int);
#define spl0() spllower(0)
#define splx(x) spllower(x)
-typedef int ipl_t;
-typedef struct {
- ipl_t _ipl;
-} ipl_cookie_t;
-
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
Index: src/sys/arch/hppa/include/mutex.h
diff -u src/sys/arch/hppa/include/mutex.h:1.15 src/sys/arch/hppa/include/mutex.h:1.15.26.1
--- src/sys/arch/hppa/include/mutex.h:1.15 Tue Jan 7 13:44:23 2020
+++ src/sys/arch/hppa/include/mutex.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.15 2020/01/07 13:44:23 ad Exp $ */
+/* $NetBSD: mutex.h,v 1.15.26.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -42,7 +42,12 @@
#ifndef __ASSEMBLER__
+#include <sys/types.h>
+
+#ifdef __MUTEX_PRIVATE
#include <machine/lock.h>
+#include <machine/intr.h>
+#endif
struct kmutex {
union {
@@ -82,7 +87,7 @@ struct kmutex {
#define MUTEX_SPIN_FLAG 0xffffff10
#define MUTEX_UNOWNED_OR_SPIN(x) (((x) & 0xffffffef) == 0xffffff00)
-#ifndef __ASSEMBLER__
+#if !defined(__ASSEMBLER__) && defined(_KERNEL)
static inline uintptr_t
MUTEX_OWNER(uintptr_t owner)
@@ -177,7 +182,7 @@ MUTEX_CLEAR_WAITERS(struct kmutex *mtx)
mtx->mtx_waiters = 0;
}
-#endif /* __ASSEMBLER__ */
+#endif /* !__ASSEMBLER__ && _KERNEL */
#endif /* __MUTEX_PRIVATE */
Index: src/sys/arch/ia64/acpi/madt.c
diff -u src/sys/arch/ia64/acpi/madt.c:1.5 src/sys/arch/ia64/acpi/madt.c:1.5.2.1
--- src/sys/arch/ia64/acpi/madt.c:1.5 Mon Dec 12 01:07:52 2022
+++ src/sys/arch/ia64/acpi/madt.c Wed Aug 9 17:42:06 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: madt.c,v 1.5 2022/12/12 01:07:52 gutteridge Exp $ */
+/* $NetBSD: madt.c,v 1.5.2.1 2023/08/09 17:42:06 martin Exp $ */
/*-
* Copyright (c) 2001 Doug Rabson
* All rights reserved.
@@ -29,6 +29,7 @@
#include <sys/param.h>
#include <sys/reboot.h>
+#include <sys/mutex.h>
#include <machine/md_var.h>
#include <machine/sapicvar.h>
Index: src/sys/arch/ia64/include/mutex.h
diff -u src/sys/arch/ia64/include/mutex.h:1.7 src/sys/arch/ia64/include/mutex.h:1.7.4.1
--- src/sys/arch/ia64/include/mutex.h:1.7 Wed Apr 6 22:47:57 2022
+++ src/sys/arch/ia64/include/mutex.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.7 2022/04/06 22:47:57 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.7.4.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _IA64_MUTEX_H_
#define _IA64_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -41,6 +43,8 @@ struct kmutex {
#else
+#include <machine/intr.h>
+
struct kmutex {
volatile uintptr_t mtx_owner;
ipl_cookie_t mtx_ipl;
Index: src/sys/arch/ia64/include/sapicvar.h
diff -u src/sys/arch/ia64/include/sapicvar.h:1.1 src/sys/arch/ia64/include/sapicvar.h:1.1.96.1
--- src/sys/arch/ia64/include/sapicvar.h:1.1 Mon Jul 20 04:41:37 2009
+++ src/sys/arch/ia64/include/sapicvar.h Wed Aug 9 17:42:02 2023
@@ -29,6 +29,10 @@
#ifndef _MACHINE_SAPICVAR_H_
#define _MACHINE_SAPICVAR_H_
+#include <sys/types.h>
+
+#include <sys/mutex.h>
+
struct sapic {
kmutex_t sa_mtx;
vaddr_t sa_registers; /* virtual address of sapic */
Index: src/sys/arch/luna68k/include/intr.h
diff -u src/sys/arch/luna68k/include/intr.h:1.15 src/sys/arch/luna68k/include/intr.h:1.15.60.1
--- src/sys/arch/luna68k/include/intr.h:1.15 Sat Mar 22 16:52:07 2014
+++ src/sys/arch/luna68k/include/intr.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.15 2014/03/22 16:52:07 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.15.60.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -32,6 +32,12 @@
#ifndef _MACHINE_INTR_H
#define _MACHINE_INTR_H
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
/*
@@ -62,9 +68,6 @@
extern const uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/m68k/include/mutex.h
diff -u src/sys/arch/m68k/include/mutex.h:1.11 src/sys/arch/m68k/include/mutex.h:1.11.4.1
--- src/sys/arch/m68k/include/mutex.h:1.11 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/m68k/include/mutex.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.11 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.11.4.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _M68K_MUTEX_H_
#define _M68K_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -40,7 +42,7 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
-#include <machine/lock.h>
+#include <machine/intr.h>
struct kmutex {
union {
Index: src/sys/arch/mac68k/include/intr.h
diff -u src/sys/arch/mac68k/include/intr.h:1.31 src/sys/arch/mac68k/include/intr.h:1.31.112.1
--- src/sys/arch/mac68k/include/intr.h:1.31 Thu Jul 17 16:13:33 2008
+++ src/sys/arch/mac68k/include/intr.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.31 2008/07/17 16:13:33 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.31.112.1 2023/08/09 17:42:03 martin Exp $ */
/*
* Copyright (C) 1997 Scott Reynolds
@@ -32,6 +32,12 @@
#include <machine/psl.h>
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _ipl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
/* spl0 requires checking for software interrupts */
@@ -66,9 +72,6 @@ extern uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _ipl;
-} ipl_cookie_t;
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/mips/include/mutex.h
diff -u src/sys/arch/mips/include/mutex.h:1.9 src/sys/arch/mips/include/mutex.h:1.9.4.1
--- src/sys/arch/mips/include/mutex.h:1.9 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/mips/include/mutex.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.9 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.9.4.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _MIPS_MUTEX_H_
#define _MIPS_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -41,9 +43,7 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
-#ifdef __MUTEX_PRIVATE
-#include <machine/lock.h>
-#endif
+#include <machine/intr.h>
struct kmutex {
volatile uintptr_t mtx_owner;
Index: src/sys/arch/mvme68k/include/intr.h
diff -u src/sys/arch/mvme68k/include/intr.h:1.21 src/sys/arch/mvme68k/include/intr.h:1.21.32.1
--- src/sys/arch/mvme68k/include/intr.h:1.21 Thu Apr 19 21:50:07 2018
+++ src/sys/arch/mvme68k/include/intr.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.21 2018/04/19 21:50:07 christos Exp $ */
+/* $NetBSD: intr.h,v 1.21.32.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -44,6 +44,12 @@
#define IPL_HIGH 7
#define NIPL 8
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
#define spl0() _spl0()
#define splsoftclock() splraise1()
@@ -59,9 +65,6 @@
extern const uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static __inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/news68k/include/intr.h
diff -u src/sys/arch/news68k/include/intr.h:1.27 src/sys/arch/news68k/include/intr.h:1.27.32.1
--- src/sys/arch/news68k/include/intr.h:1.27 Thu Apr 19 21:50:07 2018
+++ src/sys/arch/news68k/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.27 2018/04/19 21:50:07 christos Exp $ */
+/* $NetBSD: intr.h,v 1.27.32.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -32,9 +32,14 @@
#ifndef _NEWS68K_INTR_H_
#define _NEWS68K_INTR_H_
+#include <sys/types.h>
+
#include <sys/evcnt.h>
#include <sys/queue.h>
+#include <sys/stdbool.h>
+
#include <machine/psl.h>
+
#include <m68k/asm_single.h>
#define IPL_NONE 0
@@ -63,6 +68,8 @@ typedef struct {
uint16_t _psl;
} ipl_cookie_t;
+#ifdef _KERNEL
+
static __inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
@@ -98,4 +105,6 @@ splx(int sr)
#define splhigh() spl7()
#define splsched() spl7()
+#endif
+
#endif /* _NEWS68K_INTR_H_ */
Index: src/sys/arch/next68k/include/intr.h
diff -u src/sys/arch/next68k/include/intr.h:1.22 src/sys/arch/next68k/include/intr.h:1.22.32.1
--- src/sys/arch/next68k/include/intr.h:1.22 Thu Apr 19 21:50:07 2018
+++ src/sys/arch/next68k/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.22 2018/04/19 21:50:07 christos Exp $ */
+/* $NetBSD: intr.h,v 1.22.32.1 2023/08/09 17:42:02 martin Exp $ */
/*
* Copyright (C) 1997 Scott Reynolds
@@ -35,6 +35,12 @@
/* Probably want to dealwith IPL's here @@@ */
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
/* spl0 requires checking for software interrupts */
@@ -67,9 +73,6 @@
extern const uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static __inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/or1k/include/mutex.h
diff -u src/sys/arch/or1k/include/mutex.h:1.3 src/sys/arch/or1k/include/mutex.h:1.3.4.1
--- src/sys/arch/or1k/include/mutex.h:1.3 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/or1k/include/mutex.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.3 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.3.4.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _OR1K_MUTEX_H_
#define _OR1K_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -40,6 +42,8 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
+#include <machine/intr.h>
+
struct kmutex {
union {
/* Adaptive mutex */
Index: src/sys/arch/powerpc/include/mutex.h
diff -u src/sys/arch/powerpc/include/mutex.h:1.6 src/sys/arch/powerpc/include/mutex.h:1.6.26.1
--- src/sys/arch/powerpc/include/mutex.h:1.6 Fri Nov 29 22:55:34 2019
+++ src/sys/arch/powerpc/include/mutex.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.6 2019/11/29 22:55:34 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.6.26.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,8 +32,11 @@
#ifndef _POWERPC_MUTEX_H_
#define _POWERPC_MUTEX_H_
+#include <sys/types.h>
+
#ifdef __MUTEX_PRIVATE
-#include <machine/lock.h>
+#include <sys/intr.h>
+#include <machine/intr.h>
#endif
struct kmutex {
Index: src/sys/arch/riscv/include/mutex.h
diff -u src/sys/arch/riscv/include/mutex.h:1.4 src/sys/arch/riscv/include/mutex.h:1.4.4.1
--- src/sys/arch/riscv/include/mutex.h:1.4 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/riscv/include/mutex.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.4 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.4.4.1 2023/08/09 17:42:03 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _RISCV_MUTEX_H_
#define _RISCV_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -40,8 +42,12 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
+#include <sys/cdefs.h>
+
#include <sys/param.h>
+#include <machine/intr.h>
+
struct kmutex {
volatile uintptr_t mtx_owner;
};
Index: src/sys/arch/sh3/include/mutex.h
diff -u src/sys/arch/sh3/include/mutex.h:1.11 src/sys/arch/sh3/include/mutex.h:1.11.4.1
--- src/sys/arch/sh3/include/mutex.h:1.11 Wed Aug 25 04:13:42 2021
+++ src/sys/arch/sh3/include/mutex.h Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.11 2021/08/25 04:13:42 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.11.4.1 2023/08/09 17:42:05 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
#ifndef _SH3_MUTEX_H_
#define _SH3_MUTEX_H_
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -40,6 +42,8 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
+#include <machine/intr.h>
+
struct kmutex {
union {
/* Adaptive mutex */
Index: src/sys/arch/sparc/include/cpu.h
diff -u src/sys/arch/sparc/include/cpu.h:1.110 src/sys/arch/sparc/include/cpu.h:1.110.4.1
--- src/sys/arch/sparc/include/cpu.h:1.110 Sat Aug 14 17:51:19 2021
+++ src/sys/arch/sparc/include/cpu.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.110 2021/08/14 17:51:19 ryo Exp $ */
+/* $NetBSD: cpu.h,v 1.110.4.1 2023/08/09 17:42:02 martin Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -407,6 +407,8 @@ struct cpu_info {
/* Kernel only things. */
#if defined(_KERNEL)
+#include <sys/mutex.h>
+
/*
* definitions of cpu-dependent requirements
* referenced in generic code
Index: src/sys/arch/sparc/include/mutex.h
diff -u src/sys/arch/sparc/include/mutex.h:1.11 src/sys/arch/sparc/include/mutex.h:1.11.26.1
--- src/sys/arch/sparc/include/mutex.h:1.11 Fri Nov 29 22:55:34 2019
+++ src/sys/arch/sparc/include/mutex.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.11 2019/11/29 22:55:34 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.11.26.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 2002, 2006 The NetBSD Foundation, Inc.
@@ -32,7 +32,11 @@
#ifndef _SPARC_MUTEX_H_
#define _SPARC_MUTEX_H_
+#include <sys/types.h>
+
#ifdef __MUTEX_PRIVATE
+#include <machine/intr.h>
+
#include "psl.h"
#endif
Index: src/sys/arch/sparc/include/psl.h
diff -u src/sys/arch/sparc/include/psl.h:1.50 src/sys/arch/sparc/include/psl.h:1.50.4.1
--- src/sys/arch/sparc/include/psl.h:1.50 Tue Nov 2 11:26:04 2021
+++ src/sys/arch/sparc/include/psl.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: psl.h,v 1.50 2021/11/02 11:26:04 ryo Exp $ */
+/* $NetBSD: psl.h,v 1.50.4.1 2023/08/09 17:42:02 martin Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -227,6 +227,13 @@
#define SPARC64_BLOCK_SIZE 64
#define SPARC64_BLOCK_ALIGN 0x3f
+#if (defined(_KERNEL) || defined(_KMEMUSER)) && !defined(_LOCORE)
+typedef uint8_t ipl_t;
+typedef struct {
+ ipl_t _ipl;
+} ipl_cookie_t;
+#endif /* _KERNEL|_KMEMUSER & !_LOCORE */
+
#if defined(_KERNEL) && !defined(_LOCORE)
/*
@@ -296,11 +303,6 @@ static __inline __attribute__((__always_
_SPLSET(spllowerschedclock, IPL_SCHED)
-typedef uint8_t ipl_t;
-typedef struct {
- ipl_t _ipl;
-} ipl_cookie_t;
-
static inline __always_inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
Index: src/sys/arch/sparc64/include/cpu.h
diff -u src/sys/arch/sparc64/include/cpu.h:1.133 src/sys/arch/sparc64/include/cpu.h:1.133.4.1
--- src/sys/arch/sparc64/include/cpu.h:1.133 Sat Aug 14 17:51:19 2021
+++ src/sys/arch/sparc64/include/cpu.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.133 2021/08/14 17:51:19 ryo Exp $ */
+/* $NetBSD: cpu.h,v 1.133.4.1 2023/08/09 17:42:03 martin Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -89,6 +89,7 @@ struct cacheinfo {
#endif
#include <sys/cpu_data.h>
+#include <sys/mutex.h>
#include <sys/evcnt.h>
/*
Index: src/sys/arch/sparc64/include/mutex.h
diff -u src/sys/arch/sparc64/include/mutex.h:1.7 src/sys/arch/sparc64/include/mutex.h:1.7.4.1
--- src/sys/arch/sparc64/include/mutex.h:1.7 Wed Aug 25 04:13:41 2021
+++ src/sys/arch/sparc64/include/mutex.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.7 2021/08/25 04:13:41 thorpej Exp $ */
+/* $NetBSD: mutex.h,v 1.7.4.1 2023/08/09 17:42:03 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -32,6 +32,13 @@
#ifndef _SPARC64_MUTEX_H_
#define _SPARC64_MUTEX_H_
+#include <sys/types.h>
+
+#ifdef __MUTEX_PRIVATE
+#include <machine/intr.h>
+#include <machine/psl.h>
+#endif
+
struct kmutex {
union {
volatile uintptr_t mtxa_owner;
Index: src/sys/arch/sparc64/include/psl.h
diff -u src/sys/arch/sparc64/include/psl.h:1.62 src/sys/arch/sparc64/include/psl.h:1.62.4.1
--- src/sys/arch/sparc64/include/psl.h:1.62 Tue Nov 2 11:26:04 2021
+++ src/sys/arch/sparc64/include/psl.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: psl.h,v 1.62 2021/11/02 11:26:04 ryo Exp $ */
+/* $NetBSD: psl.h,v 1.62.4.1 2023/08/09 17:42:03 martin Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -282,6 +282,14 @@
#define SPARC64_BLOCK_SIZE 64
#define SPARC64_BLOCK_ALIGN 0x3f
+
+#if (defined(_KERNEL) || defined(_KMEMUSER)) && !defined(_LOCORE)
+typedef uint8_t ipl_t;
+typedef struct {
+ ipl_t _ipl;
+} ipl_cookie_t;
+#endif /* _KERNEL|_KMEMUSER&!_LOCORE */
+
#if defined(_KERNEL) && !defined(_LOCORE)
#if defined(_KERNEL_OPT)
@@ -474,11 +482,6 @@ static __inline __always_inline int name
}
#endif
-typedef uint8_t ipl_t;
-typedef struct {
- ipl_t _ipl;
-} ipl_cookie_t;
-
static __inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
Index: src/sys/arch/sun68k/include/intr.h
diff -u src/sys/arch/sun68k/include/intr.h:1.20 src/sys/arch/sun68k/include/intr.h:1.20.114.1
--- src/sys/arch/sun68k/include/intr.h:1.20 Sun Jun 22 17:34:25 2008
+++ src/sys/arch/sun68k/include/intr.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.20 2008/06/22 17:34:25 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.20.114.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 2001 Matt Fredette.
@@ -55,6 +55,12 @@
#define _IPL_SOFT_LEVEL_MIN 1
#define _IPL_SOFT_LEVEL_MAX 3
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint16_t _psl;
+} ipl_cookie_t;
+#endif
+
#ifdef _KERNEL
extern int idepth;
@@ -69,9 +75,6 @@ cpu_intr_p(void)
extern const uint16_t ipl2psl_table[NIPL];
typedef int ipl_t;
-typedef struct {
- uint16_t _psl;
-} ipl_cookie_t;
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
Index: src/sys/arch/usermode/include/mutex.h
diff -u src/sys/arch/usermode/include/mutex.h:1.4 src/sys/arch/usermode/include/mutex.h:1.4.26.1
--- src/sys/arch/usermode/include/mutex.h:1.4 Fri Nov 29 22:55:34 2019
+++ src/sys/arch/usermode/include/mutex.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.4 2019/11/29 22:55:34 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.4.26.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 2002, 2006 The NetBSD Foundation, Inc.
@@ -32,6 +32,12 @@
#ifndef _ARCH_USERMODE_INCLUDE_MUTEX_H_
#define _ARCH_USERMODE_INCLUDE_MUTEX_H_
+#include <sys/types.h>
+
+#ifdef __MUTEX_PRIVATE
+#include <machine/intr.h>
+#endif
+
struct kmutex {
union {
volatile uintptr_t mtxa_owner;
Index: src/sys/arch/vax/include/intr.h
diff -u src/sys/arch/vax/include/intr.h:1.30 src/sys/arch/vax/include/intr.h:1.30.4.1
--- src/sys/arch/vax/include/intr.h:1.30 Tue Nov 2 11:26:05 2021
+++ src/sys/arch/vax/include/intr.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.30 2021/11/02 11:26:05 ryo Exp $ */
+/* $NetBSD: intr.h,v 1.30.4.1 2023/08/09 17:42:02 martin Exp $ */
/*
* Copyright (c) 1998 Matt Thomas.
@@ -65,6 +65,11 @@
#define IST_EDGE 2 /* edge-triggered */
#define IST_LEVEL 3 /* level-triggered */
+#if defined(_KERNEL) || defined(_KMEMUSER)
+typedef struct {
+ uint8_t _ipl;
+} ipl_cookie_t;
+#endif
#ifdef _KERNEL
typedef int ipl_t;
@@ -89,10 +94,6 @@ splx(ipl_t new_ipl)
return old_ipl;
}
-typedef struct {
- uint8_t _ipl;
-} ipl_cookie_t;
-
static inline __always_inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
Index: src/sys/arch/vax/include/mutex.h
diff -u src/sys/arch/vax/include/mutex.h:1.17 src/sys/arch/vax/include/mutex.h:1.17.4.1
--- src/sys/arch/vax/include/mutex.h:1.17 Wed Apr 6 22:47:57 2022
+++ src/sys/arch/vax/include/mutex.h Wed Aug 9 17:42:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.17 2022/04/06 22:47:57 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.17.4.1 2023/08/09 17:42:02 martin Exp $ */
/*-
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
@@ -40,6 +40,8 @@
* and (if MP) using BBSSI/BBCCI to lock out the other processors.
*/
+#include <sys/types.h>
+
#ifndef __MUTEX_PRIVATE
struct kmutex {
@@ -48,6 +50,8 @@ struct kmutex {
#else /* __MUTEX_PRIVATE */
+#include <machine/intr.h>
+
struct kmutex {
union {
/* Adaptive mutex */
Index: src/sys/arch/x68k/include/intr.h
diff -u src/sys/arch/x68k/include/intr.h:1.21 src/sys/arch/x68k/include/intr.h:1.21.60.1
--- src/sys/arch/x68k/include/intr.h:1.21 Sat Mar 22 21:49:18 2014
+++ src/sys/arch/x68k/include/intr.h Wed Aug 9 17:42:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.21 2014/03/22 21:49:18 tsutsui Exp $ */
+/* $NetBSD: intr.h,v 1.21.60.1 2023/08/09 17:42:04 martin Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -64,6 +64,8 @@ typedef struct {
uint16_t _psl;
} ipl_cookie_t;
+#ifdef _KERNEL
+
static inline ipl_cookie_t
makeiplcookie(ipl_t ipl)
{
@@ -84,4 +86,7 @@ splx(int sr)
__asm volatile("movew %0,%%sr" : : "di" (sr));
}
+
+#endif /* _KERNEL */
+
#endif /* !_X68K_INTR_H_ */
Index: src/sys/arch/x86/include/cpu.h
diff -u src/sys/arch/x86/include/cpu.h:1.133 src/sys/arch/x86/include/cpu.h:1.133.4.1
--- src/sys/arch/x86/include/cpu.h:1.133 Wed Sep 7 00:40:18 2022
+++ src/sys/arch/x86/include/cpu.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.133 2022/09/07 00:40:18 knakahara Exp $ */
+/* $NetBSD: cpu.h,v 1.133.4.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 1990 The Regents of the University of California.
@@ -65,6 +65,10 @@
#include <sys/evcnt.h>
#include <sys/device_if.h> /* for device_t */
+#ifdef SVS
+#include <sys/mutex.h>
+#endif
+
#ifdef XEN
#include <xen/include/public/xen.h>
#include <xen/include/public/event_channel.h>
Index: src/sys/arch/x86/include/mutex.h
diff -u src/sys/arch/x86/include/mutex.h:1.9 src/sys/arch/x86/include/mutex.h:1.9.22.1
--- src/sys/arch/x86/include/mutex.h:1.9 Thu Mar 5 17:58:08 2020
+++ src/sys/arch/x86/include/mutex.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mutex.h,v 1.9 2020/03/05 17:58:08 riastradh Exp $ */
+/* $NetBSD: mutex.h,v 1.9.22.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2002, 2006, 2009 The NetBSD Foundation, Inc.
@@ -32,6 +32,12 @@
#ifndef _X86_MUTEX_H_
#define _X86_MUTEX_H_
+#include <sys/types.h>
+
+#ifdef _KERNEL
+#include <machine/intr.h>
+#endif
+
struct kmutex {
union {
volatile uintptr_t mtxa_owner;
Index: src/sys/ddb/db_command.c
diff -u src/sys/ddb/db_command.c:1.181.4.1 src/sys/ddb/db_command.c:1.181.4.2
--- src/sys/ddb/db_command.c:1.181.4.1 Sat Jun 3 14:47:52 2023
+++ src/sys/ddb/db_command.c Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: db_command.c,v 1.181.4.1 2023/06/03 14:47:52 martin Exp $ */
+/* $NetBSD: db_command.c,v 1.181.4.2 2023/08/09 17:42:03 martin Exp $ */
/*
* Copyright (c) 1996, 1997, 1998, 1999, 2002, 2009, 2019
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_command.c,v 1.181.4.1 2023/06/03 14:47:52 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_command.c,v 1.181.4.2 2023/08/09 17:42:03 martin Exp $");
#ifdef _KERNEL_OPT
#include "opt_aio.h"
@@ -94,6 +94,7 @@ __KERNEL_RCSID(0, "$NetBSD: db_command.c
#include <sys/kernhist.h>
#include <sys/socketvar.h>
#include <sys/queue.h>
+#include <sys/syncobj.h>
#include <dev/cons.h>
@@ -200,6 +201,7 @@ static void db_fncall(db_expr_t, bool, d
static void db_help_print_cmd(db_expr_t, bool, db_expr_t, const char *);
static void db_lock_print_cmd(db_expr_t, bool, db_expr_t, const char *);
static void db_show_all_locks(db_expr_t, bool, db_expr_t, const char *);
+static void db_show_all_tstiles(db_expr_t, bool, db_expr_t, const char *);
static void db_show_lockstats(db_expr_t, bool, db_expr_t, const char *);
static void db_show_all_freelists(db_expr_t, bool, db_expr_t, const char *);
static void db_mount_print_cmd(db_expr_t, bool, db_expr_t, const char *);
@@ -316,6 +318,8 @@ static const struct db_command db_show_c
"Print the state of the scheduler's run queues.",
NULL,NULL) },
{ DDB_ADD_CMD("socket", db_socket_print_cmd, 0,NULL,NULL,NULL) },
+ { DDB_ADD_CMD("tstiles", db_show_all_tstiles,
+ 0, "Show who's holding up tstiles", "[/t]", NULL) },
{ DDB_ADD_CMD("uvmexp", db_uvmexp_print_cmd, 0,
"Print a selection of UVM counters and statistics.",
NULL,NULL) },
@@ -1363,6 +1367,88 @@ db_show_all_locks(db_expr_t addr, bool h
}
static void
+db_show_all_tstiles(db_expr_t addr, bool have_addr,
+ db_expr_t count, const char *modif)
+{
+ struct proc *p;
+ bool trace = false;
+
+ if (modif[0] == 't')
+ trace = true;
+
+ db_printf("%5s %5s %16s %16s %16s\n",
+ "PID", "LID", "COMMAND", "WAITING-FOR", "WAIT-CHANNEL");
+ for (p = db_proc_first(); p != NULL; p = db_proc_next(p)) {
+ pid_t pid = -1;
+ char comm[MAXCOMLEN + 1] = "";
+ struct lwp *l = NULL;
+
+ db_read_bytes((db_addr_t)&p->p_pid, sizeof(pid), (char *)&pid);
+ db_read_bytes((db_addr_t)p->p_comm, sizeof(comm), comm);
+ db_read_bytes((db_addr_t)&p->p_lwps.lh_first, sizeof(l),
+ (char *)&l);
+ while (l != NULL) {
+ wchan_t wchan = NULL;
+ char wchanname[128] = "";
+ const char *wmesg = NULL;
+ char wmesgbuf[sizeof("tstile")] = "";
+ lwpid_t lid = -1;
+ struct syncobj *sobj = NULL;
+ struct lwp *owner = NULL;
+
+ db_read_bytes((db_addr_t)&l->l_wchan, sizeof(wchan),
+ (char *)&wchan);
+ if (wchan == NULL)
+ goto next;
+ db_symstr(wchanname, sizeof(wchanname),
+ (db_expr_t)(uintptr_t)wchan, DB_STGY_ANY);
+ db_read_bytes((db_addr_t)&l->l_wmesg, sizeof(wmesg),
+ (char *)&wmesg);
+ if (wmesg != NULL) {
+ db_read_bytes((db_addr_t)wmesg,
+ sizeof(wmesgbuf), wmesgbuf);
+ }
+
+ if (strncmp(wmesgbuf, "tstile", sizeof("tstile")) != 0)
+ goto next;
+
+ db_read_bytes((db_addr_t)&l->l_lid, sizeof(lid),
+ (char *)&lid);
+ db_read_bytes((db_addr_t)&l->l_syncobj, sizeof(sobj),
+ (char *)&sobj);
+ if (sobj == NULL) {
+ db_printf("%5ld %5ld %16s %16s %16s\n",
+ (long)pid,
+ (long)lid,
+ comm,
+ "(unknown)",
+ wchanname);
+ goto next;
+ }
+
+ owner = db_syncobj_owner(sobj, wchan);
+
+ db_printf("%5ld %5ld %16s %16lx %16s\n",
+ (long)pid,
+ (long)lid,
+ comm,
+ (long)owner,
+ wchanname);
+
+ if (trace && owner != NULL) {
+ db_stack_trace_print(
+ (db_expr_t)(uintptr_t)owner,
+ /*have_addr*/true, /*count*/-1,
+ /*modif(lwp)*/"a", db_printf);
+ }
+
+next: db_read_bytes((db_addr_t)&l->l_sibling.le_next,
+ sizeof(l), (char *)&l);
+ }
+ }
+}
+
+static void
db_show_all_freelists(db_expr_t addr, bool have_addr,
db_expr_t count, const char *modif)
{
Index: src/sys/ddb/ddb.h
diff -u src/sys/ddb/ddb.h:1.5 src/sys/ddb/ddb.h:1.5.20.1
--- src/sys/ddb/ddb.h:1.5 Sun May 31 09:51:55 2020
+++ src/sys/ddb/ddb.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ddb.h,v 1.5 2020/05/31 09:51:55 rin Exp $ */
+/* $NetBSD: ddb.h,v 1.5.20.1 2023/08/09 17:42:03 martin Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -50,5 +50,6 @@
#include <ddb/db_proc.h>
#include <ddb/db_cpu.h>
#include <ddb/db_autoconf.h>
+#include <ddb/db_syncobj.h>
#endif /* _DDB_DDB_H_ */
Index: src/sys/ddb/files.ddb
diff -u src/sys/ddb/files.ddb:1.15 src/sys/ddb/files.ddb:1.15.4.1
--- src/sys/ddb/files.ddb:1.15 Wed Oct 6 12:14:51 2021
+++ src/sys/ddb/files.ddb Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-# $NetBSD: files.ddb,v 1.15 2021/10/06 12:14:51 uwe Exp $
+# $NetBSD: files.ddb,v 1.15.4.1 2023/08/09 17:42:03 martin Exp $
#
# DDB options
@@ -36,6 +36,7 @@ file ddb/db_proc.c ddb
file ddb/db_print.c ddb
file ddb/db_run.c ddb | kgdb # XXX kgdb reference
file ddb/db_sym.c ddb
+file ddb/db_syncobj.c ddb
file ddb/db_trap.c ddb
file ddb/db_variables.c ddb
file ddb/db_watch.c ddb
Index: src/sys/external/bsd/drm2/include/linux/idr.h
diff -u src/sys/external/bsd/drm2/include/linux/idr.h:1.10 src/sys/external/bsd/drm2/include/linux/idr.h:1.10.2.1
--- src/sys/external/bsd/drm2/include/linux/idr.h:1.10 Tue Oct 25 23:36:32 2022
+++ src/sys/external/bsd/drm2/include/linux/idr.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: idr.h,v 1.10 2022/10/25 23:36:32 riastradh Exp $ */
+/* $NetBSD: idr.h,v 1.10.2.1 2023/08/09 17:42:03 martin Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -33,6 +33,7 @@
#define _LINUX_IDR_H_
#include <sys/types.h>
+#include <sys/mutex.h>
#include <sys/rbtree.h>
#include <linux/gfp.h>
Index: src/sys/kern/kern_core.c
diff -u src/sys/kern/kern_core.c:1.37 src/sys/kern/kern_core.c:1.37.4.1
--- src/sys/kern/kern_core.c:1.37 Sat Sep 10 07:30:41 2022
+++ src/sys/kern/kern_core.c Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_core.c,v 1.37 2022/09/10 07:30:41 mrg Exp $ */
+/* $NetBSD: kern_core.c,v 1.37.4.1 2023/08/09 17:42:05 martin Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1991, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_core.c,v 1.37 2022/09/10 07:30:41 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_core.c,v 1.37.4.1 2023/08/09 17:42:05 martin Exp $");
#ifdef _KERNEL_OPT
#include "opt_execfmt.h"
@@ -57,6 +57,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_core.c,
#include <sys/module.h>
#include <sys/compat_stub.h>
#include <sys/exec_elf.h>
+#include <sys/resourcevar.h>
MODULE(MODULE_CLASS_MISC, coredump, NULL);
Index: src/sys/opencrypto/cryptodev.h
diff -u src/sys/opencrypto/cryptodev.h:1.50 src/sys/opencrypto/cryptodev.h:1.50.4.1
--- src/sys/opencrypto/cryptodev.h:1.50 Sun May 22 11:40:29 2022
+++ src/sys/opencrypto/cryptodev.h Wed Aug 9 17:42:03 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cryptodev.h,v 1.50 2022/05/22 11:40:29 riastradh Exp $ */
+/* $NetBSD: cryptodev.h,v 1.50.4.1 2023/08/09 17:42:03 martin Exp $ */
/* $FreeBSD: src/sys/opencrypto/cryptodev.h,v 1.2.2.6 2003/07/02 17:04:50 sam Exp $ */
/* $OpenBSD: cryptodev.h,v 1.33 2002/07/17 23:52:39 art Exp $ */
@@ -85,8 +85,9 @@
#ifndef _CRYPTO_CRYPTO_H_
#define _CRYPTO_CRYPTO_H_
+#include <sys/types.h>
+
#include <sys/ioccom.h>
-#include <sys/condvar.h>
#include <sys/time.h>
#if defined(_KERNEL_OPT)
@@ -409,6 +410,16 @@ struct cryptostats {
};
#ifdef _KERNEL
+
+#include <sys/condvar.h>
+#include <sys/malloc.h>
+#include <sys/mutex.h>
+#include <sys/queue.h>
+#include <sys/systm.h>
+
+struct cpu_info;
+struct uio;
+
/* Standard initialization structure beginning */
struct cryptoini {
int cri_alg; /* Algorithm to use */
Index: src/sys/sys/cpu_data.h
diff -u src/sys/sys/cpu_data.h:1.52 src/sys/sys/cpu_data.h:1.52.20.1
--- src/sys/sys/cpu_data.h:1.52 Sun Jun 14 21:41:42 2020
+++ src/sys/sys/cpu_data.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_data.h,v 1.52 2020/06/14 21:41:42 ad Exp $ */
+/* $NetBSD: cpu_data.h,v 1.52.20.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2004, 2006, 2007, 2008, 2019, 2020 The NetBSD Foundation, Inc.
@@ -44,6 +44,7 @@ struct lwp;
#include <sys/queue.h>
#include <sys/kcpuset.h>
#include <sys/ipi.h>
+#include <sys/intr.h>
/* Per-CPU counters. New elements must be added in blocks of 8. */
enum cpu_count {
Index: src/sys/sys/ksem.h
diff -u src/sys/sys/ksem.h:1.15 src/sys/sys/ksem.h:1.15.30.1
--- src/sys/sys/ksem.h:1.15 Sun Feb 3 03:20:24 2019
+++ src/sys/sys/ksem.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ksem.h,v 1.15 2019/02/03 03:20:24 thorpej Exp $ */
+/* $NetBSD: ksem.h,v 1.15.30.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 2002 Alfred Perlstein <[email protected]>
@@ -31,9 +31,23 @@
#include <sys/cdefs.h>
+#include <sys/types.h>
+
struct timespec;
#ifdef _KERNEL
+
+#include <sys/condvar.h>
+#include <sys/mutex.h>
+#include <sys/queue.h>
+
+#ifndef _KMEMUSER /* XXX hack for fstat(8) */
+#include <sys/systm.h>
+#endif
+
+struct lwp;
+struct proc;
+
#define KSEM_MAX 128
typedef struct ksem {
Index: src/sys/sys/lua.h
diff -u src/sys/sys/lua.h:1.8 src/sys/sys/lua.h:1.8.48.1
--- src/sys/sys/lua.h:1.8 Sun Sep 6 06:01:02 2015
+++ src/sys/sys/lua.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lua.h,v 1.8 2015/09/06 06:01:02 dholland Exp $ */
+/* $NetBSD: lua.h,v 1.8.48.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 2014 by Lourival Vieira Neto <[email protected]>.
@@ -39,6 +39,7 @@
#ifdef _KERNEL
#include <sys/condvar.h>
+#include <sys/mutex.h>
#endif
#define MAX_LUA_NAME 16
Index: src/sys/sys/proc.h
diff -u src/sys/sys/proc.h:1.370.4.1 src/sys/sys/proc.h:1.370.4.2
--- src/sys/sys/proc.h:1.370.4.1 Sun May 28 09:43:26 2023
+++ src/sys/sys/proc.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: proc.h,v 1.370.4.1 2023/05/28 09:43:26 martin Exp $ */
+/* $NetBSD: proc.h,v 1.370.4.2 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -93,7 +93,9 @@
#include <sys/event.h>
#include <sys/specificdata.h>
-#ifndef _KERNEL
+#ifdef _KERNEL
+#include <sys/resourcevar.h>
+#else
#include <sys/time.h>
#include <sys/resource.h>
#endif
Index: src/sys/sys/rwlock.h
diff -u src/sys/sys/rwlock.h:1.17 src/sys/sys/rwlock.h:1.17.2.1
--- src/sys/sys/rwlock.h:1.17 Wed Oct 26 23:22:22 2022
+++ src/sys/sys/rwlock.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: rwlock.h,v 1.17 2022/10/26 23:22:22 riastradh Exp $ */
+/* $NetBSD: rwlock.h,v 1.17.2.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 2002, 2006, 2007, 2008, 2019, 2020 The NetBSD Foundation, Inc.
@@ -58,6 +58,7 @@ typedef enum krw_t {
typedef struct krwlock krwlock_t;
#ifdef __RWLOCK_PRIVATE
+#include <sys/stdbool.h>
/*
* Bits in the owner field of the lock that indicate lock state. If the
* WRITE_LOCKED bit is clear, then the owner field is actually a count of
Index: src/sys/sys/sched.h
diff -u src/sys/sys/sched.h:1.91 src/sys/sys/sched.h:1.91.2.1
--- src/sys/sys/sched.h:1.91 Wed Oct 26 23:24:09 2022
+++ src/sys/sys/sched.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: sched.h,v 1.91 2022/10/26 23:24:09 riastradh Exp $ */
+/* $NetBSD: sched.h,v 1.91.2.1 2023/08/09 17:42:01 martin Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2002, 2007, 2008, 2019, 2020
@@ -142,10 +142,11 @@ __END_DECLS
#if defined(_KERNEL) || defined(_KMEMUSER)
-#include <sys/mutex.h>
#include <sys/time.h>
#include <sys/queue.h>
+struct kmutex;
+
/*
* Per-CPU scheduler state. Field markings and the corresponding locks:
*
@@ -155,8 +156,8 @@ __END_DECLS
* c: cpu_lock
*/
struct schedstate_percpu {
- kmutex_t *spc_mutex; /* (: lock on below, runnable LWPs */
- kmutex_t *spc_lwplock; /* (: general purpose lock for LWPs */
+ struct kmutex *spc_mutex; /* (: lock on below, runnable LWPs */
+ struct kmutex *spc_lwplock; /* (: general purpose lock for LWPs */
struct lwp *spc_migrating; /* (: migrating LWP */
struct cpu_info *spc_nextpkg; /* (: next package 1st for RR */
psetid_t spc_psid; /* c: processor-set ID */
Index: src/sys/uvm/uvm_param.h
diff -u src/sys/uvm/uvm_param.h:1.41 src/sys/uvm/uvm_param.h:1.41.20.1
--- src/sys/uvm/uvm_param.h:1.41 Thu Jul 23 19:07:01 2020
+++ src/sys/uvm/uvm_param.h Wed Aug 9 17:42:01 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_param.h,v 1.41 2020/07/23 19:07:01 skrll Exp $ */
+/* $NetBSD: uvm_param.h,v 1.41.20.1 2023/08/09 17:42:01 martin Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -74,7 +74,6 @@
#ifdef _KERNEL
#include <sys/types.h>
#include <machine/vmparam.h>
-#include <sys/resourcevar.h>
#endif
#if defined(_KERNEL)
Index: src/usr.sbin/crash/Makefile
diff -u src/usr.sbin/crash/Makefile:1.46.6.1 src/usr.sbin/crash/Makefile:1.46.6.2
--- src/usr.sbin/crash/Makefile:1.46.6.1 Tue Aug 1 14:36:59 2023
+++ src/usr.sbin/crash/Makefile Wed Aug 9 17:42:05 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.46.6.1 2023/08/01 14:36:59 martin Exp $
+# $NetBSD: Makefile,v 1.46.6.2 2023/08/09 17:42:05 martin Exp $
PROG= crash
MAN= crash.8
@@ -46,13 +46,18 @@ CPPFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I$
CPPFLAGS+= -DDDB_VERBOSE_HELP -DDB_MAX_LINE=10000000 -D_KMEMUSER
CPPFLAGS+= -UDB_MACHINE_COMMANDS
+# XXX
+.if ${MACHINE} == "evbppc"
+CPPFLAGS+= -DPPC_INTR_IMPL="<powerpc/intr.h>"
+.endif
+
# ddb files from kernel
.PATH: $S/ddb
SRCS+= db_command.c db_lwp.c db_proc.c db_xxx.c db_cpu.c
SRCS+= db_autoconf.c
SRCS+= db_access.c db_elf.c db_examine.c
SRCS+= db_expr.c db_lex.c db_output.c db_print.c
-SRCS+= db_sym.c db_variables.c db_write_cmd.c
+SRCS+= db_sym.c db_syncobj.c db_variables.c db_write_cmd.c
.PATH: ${S}/arch/${MACHINE}/${MACHINE}
.PATH: ${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
Added files:
Index: src/sys/ddb/db_syncobj.c
diff -u /dev/null src/sys/ddb/db_syncobj.c:1.2.2.2
--- /dev/null Wed Aug 9 17:42:06 2023
+++ src/sys/ddb/db_syncobj.c Wed Aug 9 17:42:03 2023
@@ -0,0 +1,73 @@
+/* $NetBSD: db_syncobj.c,v 1.2.2.2 2023/08/09 17:42:03 martin Exp $ */
+
+/*-
+ * Copyright (c) 2023 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define __MUTEX_PRIVATE
+#define __RWLOCK_PRIVATE
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: db_syncobj.c,v 1.2.2.2 2023/08/09 17:42:03 martin Exp $");
+
+#include <sys/types.h>
+
+#include <sys/mutex.h>
+#include <sys/null.h>
+#include <sys/rwlock.h>
+#include <sys/syncobj.h>
+
+#include <ddb/ddb.h>
+
+struct lwp *
+db_syncobj_owner(struct syncobj *sobj, wchan_t wchan)
+{
+ db_expr_t mutex_syncobj_;
+ db_expr_t rw_syncobj_;
+
+ if (db_value_of_name("mutex_syncobj", &mutex_syncobj_) &&
+ (db_expr_t)(uintptr_t)sobj == mutex_syncobj_) {
+ volatile const struct kmutex *mtx = wchan;
+ uintptr_t owner;
+
+ db_read_bytes((db_addr_t)&mtx->mtx_owner, sizeof(owner),
+ (char *)&owner);
+ return (struct lwp *)(owner & MUTEX_THREAD);
+
+ } else if (db_value_of_name("rw_syncobj", &rw_syncobj_) &&
+ (db_expr_t)(uintptr_t)sobj == rw_syncobj_) {
+ volatile const struct krwlock *rw = wchan;
+ uintptr_t owner;
+
+ db_read_bytes((db_addr_t)&rw->rw_owner, sizeof(owner),
+ (char *)&owner);
+ if (owner & RW_WRITE_LOCKED)
+ return (struct lwp *)(owner & RW_THREAD);
+ return NULL;
+
+ } else {
+ return NULL;
+ }
+}
Index: src/sys/ddb/db_syncobj.h
diff -u /dev/null src/sys/ddb/db_syncobj.h:1.1.2.2
--- /dev/null Wed Aug 9 17:42:06 2023
+++ src/sys/ddb/db_syncobj.h Wed Aug 9 17:42:03 2023
@@ -0,0 +1,39 @@
+/* $NetBSD: db_syncobj.h,v 1.1.2.2 2023/08/09 17:42:03 martin Exp $ */
+
+/*-
+ * Copyright (c) 2023 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DDB_DB_SYNCOBJ_H
+#define _DDB_DB_SYNCOBJ_H
+
+#include <sys/syncobj.h>
+
+struct lwp;
+struct syncobj;
+
+struct lwp *db_syncobj_owner(struct syncobj *, wchan_t);
+
+#endif /* _DDB_DB_SYNCOBJ_H */