Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sparc64/include/psl.h
RevisionDateAuthorComments
 1.66  20-May-2025  macallan provide splsoftbio()
 1.65  07-Apr-2024  rillig branches: 1.65.2;
sparc: fix typos and omissions in PSTATE_BITS and ECC_AFR_BITS

Fixes PR 57869.
 1.64  02-Sep-2023  jdc sparc64: fix interrupt level mapping for disk and and parallel devices
on SBUS-based machines
Change the mapping from PIL_SCSI to PIL_BIO, so that they interrupt above
the highest soft interrupt (softserial)
Remove unused PIL_SCSI, PIL_FDSOFT, PIL_AUSOFT and fix the printf in fdc.c
Add "socal" and "SUNW,bpp" to the interrupt map.
 1.63  11-Jul-2023  martin Move the definition of ipl_cookie_t out of the kernel-only sections,
some _KMEMUSER applications need it.
 1.62  02-Nov-2021  ryo branches: 1.62.4;
In order to prevent _mcount() from being recursively called when built with COPTS=-O0,
sprinkle `__always_inline' to make _mcount() be generated as a single function.
 1.61  13-Nov-2019  nakayama Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.
 1.60  06-Apr-2019  nakayama The real cause for removing asm inline code on clang is that the
"r" constraint cannot handle 64-bit and is treated as 32-bit.

So code that refers to the upper 32-bit (manuf or impl) of the %ver
register is removed by optimization.

Use 32-bit kernel code as a workaround when referring to the %ver
register.
 1.59  05-Apr-2019  nakayama Put "memory" to asm inline reading privilege registers for clang to
prevent it from being removed by excessive optimization.
 1.58  08-Feb-2019  palle Introduce getstickcmpr() function
 1.57  18-May-2016  nakayama branches: 1.57.18;
Fix (unused) pstate mask bits in tstate and comment.
 1.56  25-Dec-2014  nakayama Put "memory" to asm inline for reading privilege registers on sun4v
to avoid issuing rdpr %ver before checking cputyp as a result of
code moving by compiler optimization.
 1.55  05-Dec-2014  nakayama Use GETVER_CPU_* macros.
 1.54  05-Dec-2014  nakayama Make getver() into a constant function since Version Register (%ver)
is read only and its value is constant.

This change reduces multipule %ver reads to one in the functions
which uses a number of CPU_IS_* macros.
 1.53  18-Aug-2013  martin branches: 1.53.4; 1.53.6;
Remove ancient spl* variants no longer used
 1.52  09-Nov-2012  nakayama branches: 1.52.2;
Make setstick() and getstick() to inline functions.
 1.51  08-Nov-2012  nakayama Move ASRs macro to more appropriate header.
While there remove useless macro.
 1.50  08-Nov-2012  macallan use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama
 1.49  12-Jul-2011  mrg branches: 1.49.2; 1.49.8; 1.49.12;
rename sparc64 BLOCK_SIZE and BLOCK_ALIGN to have SPARC64_ prefixes.
for the assembler files, define the old names to the new names
since using the new names cause ugliness due to longer identifer
names, and reduces churn.

fixes build issues in dtv and vaguely makes <machine/psl.h> slightly
less name-space invasive.
 1.48  25-May-2011  mrg define MANUF_FUJITSU (and fix CPU_IS_SPARC64_V_UP()) and MANUF_SUN.

use CPU_IS_SPARC64_V_UP() to choose some US-III versions of some
cache functions.
 1.47  12-May-2011  mrg first steps towards fujitsu SPARC64 support:

- add IMPL_* defines for fujitsu SPARC64 processors (mostly from openbsd)
- rename CPU_IS_JALAPENO() as CPU_IS_USIIIi()
- add GETVER_CPU_MANUF()
- add CPU_IS_SPITFIRE() and CPU_IS_SPARC64_V_UP()
 1.46  01-Feb-2010  mrg branches: 1.46.4; 1.46.6;
add some macros to check cpu type:
GETVER_CPU_IMPL()
CPU_IS_JALAPENO()
CPU_IS_USIII_UP()
and use them in a couple places to choose the right method/index
 1.45  15-Jan-2010  nakayama Add processor implementation codes, from OpenBSD.
 1.44  15-Jan-2010  nakayama Add function names defined by macro in comment for reference.
 1.43  04-Dec-2009  nakayama Bring together similar definitions of inline functions manipulating
privileged registers using macro. no functional change.
 1.42  25-Nov-2009  rmind Remove IPL_LPT and IPL_IPI aliases, use the actual IPLs.
Fix some broken comments.
 1.41  16-May-2009  nakayama - move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.
 1.40  02-Mar-2008  nakayama branches: 1.40.4;
Correct TSTATE_KERN and TSTATE_USER macros.
 1.39  25-Feb-2008  nakayama Fix macro to convert CCR field between PSR and TSTATE.
CCR filed in PSR starts from bit 20, not from bit 19.
 1.38  11-Dec-2007  martin branches: 1.38.4; 1.38.8;
Make sure the compiler does not reorder stores accross spl...() calls
[or, for completeness, calls changing the processor state]. The mutex
code has small race windows otherwise.
 1.37  03-Dec-2007  ad branches: 1.37.2; 1.37.4; 1.37.6;
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.36  16-Feb-2007  ad branches: 1.36.6; 1.36.22; 1.36.24; 1.36.30;
Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
 1.35  26-Dec-2006  ad Define ipl_t as uint8_t so that it can be packed into a word with a lock
byte. Ok yamt@.
 1.34  21-Dec-2006  yamt merge yamt-splraiseipl branch.

- finish implementing splraiseipl (and makeiplcookie).
http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
- complete workqueue(9) and fix its ipl problem, which is reported
to cause audio skipping.
- fix netbt (at least compilation problems) for some ports.
- fix PR/33218.
 1.33  04-May-2006  yamt branches: 1.33.8; 1.33.10;
pull splraiseipl() for sparc64 from newlock branch.
reviewed by Martin Husemann.
 1.32  20-Feb-2006  cdi branches: 1.32.2; 1.32.4; 1.32.6;
Use ANSI-style function definitions and declarations.
 1.31  16-Feb-2006  perry Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.30  24-Dec-2005  perry branches: 1.30.2; 1.30.4; 1.30.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.29  11-Dec-2005  christos merge ktrace-lwp.
 1.28  19-Jun-2005  thorpej branches: 1.28.2;
Small clean-ups before an overhaul.
 1.27  27-Jan-2005  martin Remove orphaned extern declaration.
 1.26  14-Mar-2004  chs branches: 1.26.8; 1.26.10;
checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.
 1.25  15-Nov-2003  petrov Compile GENERIC.MP.
 1.24  09-Nov-2003  petrov Lower PIL_AUD so /dev/audio will not interrupt and interfere with
scheduler. Fixes kern/23382.
 1.23  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.22  22-Mar-2003  nakayama branches: 1.22.2;
PCI-CardBus bridge support for sparc64:
- add splsoftserial.
 1.21  29-Sep-2002  chs avoid reading %pil in splx() if !SPLDEBUG.
misc tidiness.
 1.20  13-Apr-2001  thorpej branches: 1.20.2; 1.20.8; 1.20.12; 1.20.18;
Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
 1.19  02-Mar-2001  mrg branches: 1.19.2;
clean up slightly.
 1.18  14-Jan-2001  thorpej Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
 1.17  29-Dec-2000  eeh Lower PIL_SCHED below the zs interrupt so we don't get silo overflows.
 1.16  23-Aug-2000  eeh Update the scheduler to the new locking scheme.
 1.15  22-Aug-2000  thorpej Add spllock(). See spl(9) for details.
 1.14  21-Aug-2000  thorpej Make sure we provide splsched() as described in spl(9).
 1.13  23-Jul-2000  eeh Give 64-bit processes access to a full 64-bit address space (90% of which
they can't use anyway, but that's another issue.)
 1.12  09-Jul-2000  eeh Use TSO memory model for 32-bit userland.
 1.11  05-Aug-1999  thorpej branches: 1.11.2; 1.11.12;
Fix the raise/lower semantics of splsoftclock()/spllowersoftclock().
 1.10  05-Aug-1999  thorpej Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX. This platforms still have this bug until their
XXX spl*() functions are fixed.
 1.9  18-Jul-1999  eeh Lower spl for softints.
 1.8  05-Jun-1999  eeh Fix things up so they compile again.
 1.7  26-Mar-1999  eeh branches: 1.7.4;
COMPAT_SPARC32 -> COMPAT_NETBSD32
 1.6  31-Jan-1999  mrg retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.
 1.5  05-Sep-1998  eeh It slices. It dices. It does everything except exec a sparc32_compat init.
 1.4  30-Aug-1998  eeh Some more 64-bit cleanup. Now everything compiles.
 1.3  28-Jul-1998  eeh That last change to reduce warnings wasn't quite right.
 1.2  27-Jul-1998  mrg don't provide a static splx prototype if SPLDEBUG. avoids warnings...
 1.1  20-Jun-1998  eeh branches: 1.1.1;
Initial revision
 1.1.1.1  20-Jun-1998  eeh Import of sparc64.
 1.7.4.2  02-Aug-1999  thorpej Update from trunk.
 1.7.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.11.12.2  31-Jul-2000  mrg pull up 1.13 (approved by thorpej):
>Give 64-bit processes access to a full 64-bit address space (90% of which
>they can't use anyway, but that's another issue.)
 1.11.12.1  18-Jul-2000  mrg pullup the contents of -current arch/sparc64. this gives us significant
ultrasparc PCI support (ultra5, ultra10, AXi, and E250 tested so far),
plus many other small fixes. netbooting is now supported.
 1.11.2.5  21-Apr-2001  bouyer Sync with HEAD
 1.11.2.4  12-Mar-2001  bouyer Sync with HEAD.
 1.11.2.3  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.11.2.2  05-Jan-2001  bouyer Sync with HEAD
 1.11.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.19.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.20.18.1  14-Nov-2003  jmc Pullup rev 1.24 (requested by petrov in ticket #1559)

Lower PIL_AUD so /dev/audio will not interrupt and interfere with scheduler.
Fixes PR#23382
 1.20.12.1  19-Mar-2002  thorpej Implement splraiseipl(), as used by the new mutex code.
 1.20.8.2  18-Oct-2002  nathanw Catch up to -current.
 1.20.8.1  13-Apr-2001  nathanw file psl.h was added on branch nathanw_sa on 2002-10-18 02:40:06 +0000
 1.20.2.1  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.22.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.22.2.4  04-Feb-2005  skrll Sync with HEAD.
 1.22.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.22.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.22.2.1  03-Aug-2004  skrll Sync with HEAD
 1.26.10.1  12-Feb-2005  yamt sync with head.
 1.26.8.1  29-Apr-2005  kent sync with -current
 1.28.2.7  17-Mar-2008  yamt sync with head.
 1.28.2.6  27-Feb-2008  yamt sync with head.
 1.28.2.5  21-Jan-2008  yamt sync with head
 1.28.2.4  07-Dec-2007  yamt sync with head
 1.28.2.3  26-Feb-2007  yamt sync with head.
 1.28.2.2  30-Dec-2006  yamt sync with head.
 1.28.2.1  21-Jun-2006  yamt sync with head.
 1.30.6.2  01-Jun-2006  kardel Sync with head.
 1.30.6.1  22-Apr-2006  simonb Sync with head.
 1.30.4.1  09-Sep-2006  rpaulo sync with head
 1.30.2.2  01-Mar-2006  yamt sync with head.
 1.30.2.1  18-Feb-2006  yamt sync with head.
 1.32.6.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.32.4.1  11-May-2006  elad sync with head
 1.32.2.1  24-May-2006  yamt sync with head.
 1.33.10.1  19-Sep-2006  yamt implement new api for sparc64.
 1.33.8.1  12-Jan-2007  ad Sync with head.
 1.36.30.2  27-Dec-2007  mjf Sync with HEAD.
 1.36.30.1  08-Dec-2007  mjf Sync with HEAD.
 1.36.24.2  23-Mar-2008  matt sync with HEAD
 1.36.24.1  09-Jan-2008  matt sync with HEAD
 1.36.22.1  09-Dec-2007  jmcneill Sync with HEAD.
 1.36.6.1  03-Dec-2007  ad Sync with HEAD.
 1.37.6.1  13-Dec-2007  bouyer Sync with HEAD
 1.37.4.1  11-Dec-2007  yamt sync with head.
 1.37.2.1  26-Dec-2007  ad Sync with head.
 1.38.8.1  03-Apr-2008  mjf Sync with HEAD.
 1.38.4.1  24-Mar-2008  keiichi sync with head.
 1.40.4.2  11-Mar-2010  yamt sync with head
 1.40.4.1  20-Jun-2009  yamt sync with head
 1.46.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.46.4.1  31-May-2011  rmind sync with head
 1.49.12.3  03-Dec-2017  jdolecek update from HEAD
 1.49.12.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.49.12.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.49.8.1  23-Nov-2012  riz Pull up following revision(s) (requested by macallan in ticket #695):
sys/arch/sparc64/include/cpu.h: revision 1.99
sys/arch/sparc64/sparc64/cpu.c: revision 1.103
sys/arch/sparc64/include/psl.h: revision 1.50
sys/arch/sparc64/sparc64/clock.c: revision 1.107
sys/arch/sparc64/include/ctlreg.h: revision 1.57
sys/arch/sparc64/sparc64/locore.s: revision 1.342
use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama
 1.49.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.49.2.1  16-Jan-2013  yamt sync with (a bit old) head
 1.52.2.1  28-Aug-2013  rmind sync with head
 1.53.6.2  29-May-2016  skrll Sync with HEAD
 1.53.6.1  06-Apr-2015  skrll Sync with HEAD
 1.53.4.1  13-Dec-2014  martin Pull up following revision(s) (requested by nakayama in ticket #318):
sys/arch/sparc64/include/psl.h: revision 1.54
sys/arch/sparc64/include/psl.h: revision 1.55
sys/arch/sparc64/sparc64/cpu.c: revision 1.121
Make getver() into a constant function since Version Register (%ver)
is read only and its value is constant.
This change reduces multipule %ver reads to one in the functions
which uses a number of CPU_IS_* macros.
Use GETVER_CPU_* macros.
 1.57.18.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.57.18.1  10-Jun-2019  christos Sync with HEAD
 1.62.4.3  28-May-2025  martin Pull up following revision(s) (requested by bouyer in ticket #1121):

sys/arch/ia64/include/intr.h: revision 1.9
sys/uvm/uvm_pdpolicy_clock.c: revision 1.41
sys/sys/spl.h: revision 1.11
sys/uvm/uvm_pdpolicy_clock.c: revision 1.42
sys/arch/sparc64/include/psl.h: revision 1.66

uvmpdpol_pagerealize(): ucpu->pdqhead is used by a single CPU; but

kpreempt_disable() isn't enough to guard against concurent access;
interrupts also need to be disabled.

If my analysis is correct, the only place using ucpu->pdqhead which
can be called from interrupt context it uvmpdpol_pagerealize(), and only
from softbio().

So:
- introduce splsoftbio() in sys/spl.h
- protect all accesses to ucpu->pdqhead with splsoftbio()
fixes pr kern/59412: uvmpdpol_pagerealize() queue index out of bound

Provide splsoftbio()

Remove the redundant kpreempt_disable/kpreempt_enable now that we're
running at splsoftbio. Pointed out by thorpej@
 1.62.4.2  09-Sep-2023  martin Pull up following revision(s) (requested by jdc in ticket #360):

sys/arch/sparc64/dev/fdc.c: revision 1.52
sys/arch/sparc64/include/intr.h: revision 1.32
sys/arch/sparc64/sparc64/autoconf.c: revision 1.239
sys/arch/sparc64/include/psl.h: revision 1.64

sparc64: fix interrupt level mapping for disk and and parallel devices
on SBUS-based machines

Change the mapping from PIL_SCSI to PIL_BIO, so that they interrupt above
the highest soft interrupt (softserial)

Remove unused PIL_SCSI, PIL_FDSOFT, PIL_AUSOFT and fix the printf in fdc.c

Add "socal" and "SUNW,bpp" to the interrupt map.
 1.62.4.1  09-Aug-2023  martin 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.
 1.65.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed