Home | History | Annotate | Download | only in include
History log of /src/sys/arch/alpha/include/intr.h
RevisionDateAuthorComments
 1.85  16-Jul-2021  thorpej The Alpha AXP Architecture Reference Manual is explcit that the only
valid bits in the PSL are the IPL and USER bits, the latter of which
will always be clear when in the kernel, and that all other bits MBZ.
So, when reading the PSL to get the current IPL, don't bother masking
with ALPHA_PSL_IPL_MASK.
 1.84  04-Jul-2021  thorpej Reduce code duplication when setting up the interrupt handler data
structures:
- alpha_shared_intr_alloc() no longer takes a "string length" argument,
and just uses kmem_asprintf() to create an "irq %u" string by default.
This is suitable for nearly every caller.
- Add a alpha_shared_intr_set_string() that allows callers to override
the default IRQ description string.
- Related: make alpha_shared_intr_string() return a const char *, since
no callers should need to modify the string directly now.
- Re-factor PCI shared interrupt structure allocation / initialization
into a new alpha_pci_intr_alloc(), which is suitable for nearly every
Alpha PCI platform. Callers are expected to first have initialized
the interrupt hardware to the quiescent state.

Adjust various call sites of above functions to account for changes,
even if they are not able to use the newly re-factored code.
 1.83  10-Oct-2020  thorpej branches: 1.83.6;
Fix cycle counter-based time keeping on Alpha in MP environments by using
a simpler calibration algorithm for the CC timecounter. Proposed in 2018
by Naruaki Etomi:

https://mail-index.netbsd.org/tech-kern/2018/01/14/msg022940.html

This patch is largely based on the proposed change, but avoids changing
any other timecounter logic, and re-factors things a bit to keep them
as MI as possible.
 1.82  26-Sep-2020  thorpej Implement cpu_intr_redistribute() for Tusnami/Titan systems.
 1.81  25-Sep-2020  thorpej Changes to make interrupt {,dis}establish MP-safe on Alpha:
- Protect all of the system interrupt linkage with the cpu_lock mutex.
- Re-order some of the stores to the SCB vector table to make it safe
in the face of lockless interrupt dispatch.
- Add a framework for routing interrupts to specific CPUs. Interrupts
are still funneled only to the primary CPU, but that will change for
some systems soon. Ensure that interrupt handler lists are manipulated
only on the CPUs that handle that specific interrupt source. This required
a re-factor of the alpha_shared_intr_*() family of functions.
- Enable __HAVE_INTR_CONTROL, although interrupt redistribution is still
a no-op.
- Reduce code duplication in the Jenson direct-SCB interrupt handlers.
 1.80  23-Sep-2020  thorpej Use a wrapper to acquire the kernel lock for non-MPSAFE interrupts,
rather than doing it in alpha_shared_intr_establish() directly.
 1.79  22-Sep-2020  thorpej Changes to make MPSAFE interrupts work on Alpha:

- Remove the ipl argument to scb_set() and the associated array of
"mpsafe" booleans initialized based on the ipl. It was bogus
anyway; all IPL_{BIO,NET,TTY}, etc. values are aliases of IPL_VM,
and for all practical purposes, there is really only one device
interrrupt level on Alpha anyway. Intead, we now treat all dispatches
from the SCB vector table as MP-safe, and it is now the handler for
that vector who is responsible for acquiring the KERNEL_LOCK if needed.

- Update the direct interrupt vector handlers in jensenio and TURBOchannel
to acquire the KERNEL_LOCK.

- Introduce a new ALPHA_INTR_MPSAFE flag, and add a flags argument to
alpha_shared_intr_establish(). When it is set, indicate that the
handler is MP-safe. Update alpha_shared_intr_dispatch() to pay
attention and acquire the KERNEL_LOCK (or not) as indicated.

- Re-factor all of the PCI interrupt handling, providing "generic PCI"
"PCI interrupts through ISA IRQs" implementations to significantly
reduce code duplication. Supplement the PCI chipset tag with more
info to facilitate this, and make the PCI interrupt-related routines
take a pci_chipset_tag_t argument rather than a void * argument.

- Because PCI interrupts on KN8AE are dispatched directly from the
SCB, provide a wrapper for non-MPSAFE interrupt handlers that
acquires the KERNEL_LOCK.

- Change the pci_intr_handle_t type to be a struct rather than an
integer type in order to catch any direct use of it as a value.
Add a set of functions to interact with pci_intr_handle_t, including
setting interrupt flags.

- Implement pci_intr_setattr() so that the PCI_INTR_MPSAFE attribute
can be set on a pci_intr_handle_t.

- While I'm here, make all of the MI PCI back-end operations call
through real functions rather than hopping directly through function
pointers in the chipset tag.

This change looks a lot bigger than it really is because of the re-factor
in the plethora of model-specific PCI interrupt back-ends. The KN8AE,
KN300, and T2/T3/T4 (Sable) are largely un-changed.
 1.78  19-Sep-2020  thorpej Move softintr bits into <machine/intr.h> and define ALPHA_ALL_SOFTINTS
for locore.s
 1.77  17-Sep-2020  thorpej Reduce the __HAVE_FAST_SOFTINTS #ifdef perimeter.
 1.76  16-Sep-2020  thorpej Implement fast soft interrupts for Alpha. It's not yet enabled, because
there is a bug lurking that causes problems when user space starts up,
so we'll stick with the slow path for now.
 1.75  05-Sep-2020  thorpej Track the SSIR per-cpu, rather than globally.
 1.74  05-Sep-2020  thorpej - Document all of the various interrupt levels in the Processor Stataus
register, and provide symbolic names for them as well.
- Use ALPHA_PSL_IPL_* values directly for IPL_*.
 1.73  29-Aug-2020  thorpej - Centralize per-CPU pmap initialization into a new pmap_init_cpu()
function. Call in from pmap_bootstrap() for the boot CPU, and
from cpu_hatch() for secondaary CPUs.
- Eliminiate the dedicated I-stream memory barrier IPI; handle it all from
the TLB shootdown IPI. Const poison, and add some additional memory
barriers and a TBIA to the PAUSE IPI.
- Completly rewrite TLB management in the alpha pmap module, borrowing
somoe ideas from the x86 pmap and adapting them to the alpha environment.
See the comments for theory of operation. Add a bunch of stats that
can be reported (disabled by default).
- Add some additional symbol decorations to improve cache behavior on
MP systems. Ensure coherency unit alignment for several structures
in the pmap module. Use hashed locks for pmap structures.
- Start out all new processes on the kernel page tables until their
first trip though pmap_activate() to avoid the potential of polluting
the current ASN in TLB with cross-process mappings.
 1.72  14-Jan-2017  christos fix types.
 1.71  19-May-2014  rmind branches: 1.71.4; 1.71.8;
Implement MI IPI interface with cross-call support.
 1.70  06-Feb-2012  matt branches: 1.70.6; 1.70.20;
Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.69  07-Jun-2011  matt branches: 1.69.2; 1.69.6;
Switch alpha to use PCU to manage the FPU.
Tested by mhitch and review by rmind.
 1.68  22-Jun-2010  rmind branches: 1.68.6;
Implement high priority (XC_HIGHPRI) xcall(9) mechanism - a facility
to execute functions from software interrupt context, at SOFTINT_CLOCK.
Functions must be lightweight. Will be used for passive serialization.

OK ad@.
 1.67  26-Oct-2009  thorpej branches: 1.67.2; 1.67.4;
Garbage-collect pmap_do_reactivate() and the associated IPI -- nothing has
used them for a long time.
 1.66  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.65  24-Apr-2008  he branches: 1.65.2;
This file needs <machine/cpu.h> included, for the ALPHA_PSL_IPL_*
constants it uses.
 1.64  10-Mar-2008  ad branches: 1.64.2;
Finish moving alpha over to the MI atomic ops.
 1.63  04-Jan-2008  ad branches: 1.63.2; 1.63.6;
More header file cleanup.
 1.62  03-Dec-2007  ad branches: 1.62.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.61  17-Oct-2007  garbled branches: 1.61.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.60  18-May-2007  mhitch branches: 1.60.8; 1.60.10;
Fix alpha build after idlelwp merge. I don't know why machine/cpu.h was
added here, but it does not seem to be needed now, and was resulting in a
circular dependency when sys/sched.h was changed in the yamt-idlelpw branch.
 1.59  16-Feb-2007  ad branches: 1.59.6; 1.59.8; 1.59.12; 1.59.14;
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.58  09-Feb-2007  ad Merge newlock2 to head.
 1.57  12-Jan-2007  ad Define ipl_cookie_t._psl as uint8_t so that it can be packed into a
word with other seldomly written fields.
 1.56  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.55  16-Feb-2006  perry branches: 1.55.14; 1.55.16;
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.54  24-Dec-2005  perry branches: 1.54.2; 1.54.4; 1.54.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.53  11-Dec-2005  christos merge ktrace-lwp.
 1.52  03-Nov-2005  yamt - use sys/spl.h.
- add some IPL_ definitions.
 1.51  29-Oct-2005  yamt pull splraiseipl() from newlock branch.
 1.50  29-Mar-2005  thorpej branches: 1.50.2; 1.50.4;
- Add a alpha_shared_intr_reset_strays() function that resets the stray
interrupt counter for a given shared interrupt descriptor.
- When an interrupt is successfully handled, reset the strays counter,
thus preventing a "slow leak" from eventually shutting off the interrupt
vector. Idea taken from pci_kn300.c (which was changed to use the new
alpha_shared_intr_reset_strays() function).
 1.49  27-Jul-2001  thorpej branches: 1.49.2; 1.49.10; 1.49.22; 1.49.28; 1.49.30; 1.49.36;
Rework the interrupt code, shaving some cycles off in the process.
Rather than an "iointr" routine that decomposes a vector into an
IRQ, we maintain a vector table directly, hooking up each "iointr"
routine at the correct vector. This also allows us to hook device
interrupts up to specific vectors (c.f. Jensen).

We can shave even more cycles off, here, and I will, but it requires
some changes to the alpha_shared_intr stuff.
 1.48  15-Jul-2001  thorpej - Tweak the pmap locking protocol slightly -- require that a pmap must
be locked before it can be marked as `active' on a processor.
- Require that pmaps other than the kernel pmap be locked when they
are passed to pmap_tlb_shootdown(). This, combined with the locking
protocol tweak, allow us to get a consistent view of `activeness' of
a pmap, which means we can optmize away a lot of TLB shootdown traffic
for user pmaps.
- Borrow an idea from the i386mp branch; use the normal SHOOTDOWN IPI
to deal with hitting the entire TLB, and garbage-collect the TBIA
and TBIAP IPIs.
 1.47  28-Apr-2001  thorpej branches: 1.47.2;
Add a microtime() implementation that interpolates between ticks
using the cycle counter. MP-safeness is achieved by giving each
CPU its own PCC frequency variables, and kicking the non-primary
processors via an IPI once per second.

Based on the sample code from David Mills' "A Kernel Model for
Precision Timekeeping".
 1.46  20-Apr-2001  thorpej Add splipi() to block interprocessor interrupts (which come in at IPL 5).
 1.45  20-Apr-2001  thorpej pmap_asn_alloc(): In a multiprocessor configuration, it's possible
to arrive here referencing the kernel_lev1map without having the
RESERVED ASN -- another CPU may have caused pmap_lev1map_destroy()
to be called, and that routine only invalidates the ASN for the
CPU that called it. So, in the MULTIPROCESSOR case, simply assign
the RESERVED ASN if we reference the kernel_lev1map rather than
asserting that we already have the RESERVED ASN. Thanks to Bill
Sommerfeld for helping me track down the problem.

Also add a new IPI that causes a CPU to re-activate its address
space if the pmap it's using changes level 1 maps (this probably
won't happen very often, but it's correct to have it).

This makes Alpha MP kernels boot multiuser. In fact, this commit
is being made from my dual-CPU AlphaServer 1200 running an MP kernel.
 1.44  15-Apr-2001  thorpej In splx(), don't call spl0() unless the ssir != 0.
 1.43  15-Apr-2001  thorpej Clean up soft interrupt related stuff a bit.
 1.42  14-Apr-2001  thorpej Change the softintr implementation to be a bit more cache friendly
(though, sigh, slightly more expensive at softintr_schedule() time).
 1.41  13-Apr-2001  thorpej 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.40  15-Jan-2001  thorpej branches: 1.40.2;
Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
 1.39  14-Jan-2001  thorpej Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
 1.38  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.37  22-Nov-2000  thorpej Several changes, which get us generally further along with
multiprocessor support:
- Implement MP-safe halt.
- Make the FPU saving code more like Bill's on the i386 MP branch.
XXX This code will no doubt be revisited again.
- Pass the cpu_info and trapframe to IPI handlers, saving some work
in the handlers themselves, and also making it possible for the
"pause" handler to reference register state for DDB.
- Add "machine cpu" to DDB, making it possible to reference other
CPUs registers (and thus get e.g. a traceback) from whichever
CPU is actually running the debugger.
- Garbage-collect "machine halt" and "machine reboot" DDB commands.
They don't have a prayer of working properly in multiprocessor
kernels, and didn't really work all that well in uniprocessor kernels.
 1.36  20-Nov-2000  thorpej Move IPI processing into a separate function.
 1.35  18-Nov-2000  thorpej Count individual interprocessor interrupts -- it's good to know where
they all come from.
 1.34  22-Aug-2000  thorpej Add spllock(). See spl(9) for details.
 1.33  21-Aug-2000  thorpej Add experimental code for pausing other CPUs upon a CPU's
entry into the debugger. While I'm here, add splsched()
as per spl(9).
 1.32  15-Aug-2000  thorpej Implement MP-safe lazy FP context switching, modeled on the
way Bill Sommerfeld implemented it for x86 (and bug fixes
fed back to Bill :-)
 1.31  13-Aug-2000  thorpej Add alpha_multicast_ipi().
 1.30  13-Jul-2000  thorpej Whitespace police.
 1.29  09-Jun-2000  cgd make spl0() and spllowersoftclock() return void. Also, move spl0()
prototype from param.h to intr.h. (there were some big XXXs in param.h
that said to do that, and intr.h is included by param.h, so...)
 1.28  05-Jun-2000  thorpej Switch to the new `evcnt' mechanism for counting interrupts. Maintain
a per-CPU interrupt counter for clock, device, and interprocessor
interrupts.
 1.27  04-Jun-2000  thorpej Un-__P'ify kernel prototypes.
 1.26  03-Jun-2000  thorpej - Clean up clock interrupt code a bit, and provide a CPU_IS_PRIMARY()
macro in the MULTIPROCESSOR case (hardclock() wants it).
- Implement __GENERIC_SOFT_INTERRUPTS, and redefine the legacy
software interrupts in terms of it. Garbage-collect setsoftserial().
 1.25  23-May-2000  thorpej branches: 1.25.2;
Rename the atomic operations to have generic machine-independent
names, and define __HAVE_ATOMIC_OPERATIONS to indicate their
existence.
 1.24  19-Mar-2000  thorpej Point back to the alpha_shared_intr in the intrhand structure. This
allows platform-specific code to access the `intr_private' data via
the intrhand structure.
 1.23  02-Dec-1999  thorpej Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.
 1.22  29-Nov-1999  thorpej - Fix a botch in the IPI bitmasks (they were right-shifted by 1), and
add an IPI which causes the target CPU to perform AST processing when
it returns to userspace.
- Add a way to get/set a private pointer in the shared interrupt header.
 1.21  10-Aug-1999  thorpej branches: 1.21.2; 1.21.8;
Use atomic operations to manipulate the SSIR, and fix a problem introduced
with the spllowersoftclock() changes where more interrupts than necessary
were blocked while software interrupts were being processed.
 1.20  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.19  24-Feb-1999  thorpej Restructure the IPI code a little, allowing multiple IPIs to be sent at
once. Add a way to broadcast an IPI to all processors (except the sender,
obviously). Add an IPI for TLB shootdown.
 1.18  26-Sep-1998  thorpej Add basic interprocessor interrupt sending and receiving code. Current
IPI functions: HALT, IMB, TBIA, TBIAP.

XXX HALT is not yet implemented, it's just a stub.
 1.17  25-Sep-1998  thorpej Minor style tweaks.
 1.16  21-Sep-1998  matt Add softserial to the alpha port. This significantly improved PPP
throughput on com ports.
 1.15  01-Aug-1998  thorpej Implement alpha_shared_intr_disestablish(). Simply removes the handler
fromthe list, allowing the caller to manipulate the sharing type,
if appropriate.
 1.14  18-Jul-1998  is Switching dev/ic/lpt.c to use spllpt() instead of spltty(). It doesn't use
tty structures, and on some machines (namely the DraCo internal lpt, and some
multi-i/o boards for Amigas and DraCos), tying spltty to the pretty high printer
interupt level would hurt serial performance.

On all affected ports but Amiga, spllpt() has been defined in machine/intr.h
to be spltty(), thus preserving old behaviour. Portmasters are encouraged to
change is, if they feel something else is better (e.g., one of its own were
possible).
 1.13  07-Jul-1998  thorpej On second thought, call that like the rest of the shared intr functions.
 1.12  07-Jul-1998  thorpej Define a macro to test if a shared interrupt should be disabled after
a stray has occurred.
 1.11  10-Nov-1997  mjacob Protect userland applications from the inline splraise function.
 1.10  07-Jul-1997  cgd branches: 1.10.6;
mark prototypes for static inline functions as possibly unused
(with __attribute__ ((unused))), to avoid generating warnings when
compiling without optimization but with the default warning flags.
 1.9  05-Jun-1997  cgd two more slight bogons
 1.8  05-Jun-1997  cgd actually, declare _splraise() as an inline function, because:
(1) it was using 'max', and some functions use a variable
of that name (*sigh*), and
(2) that makes it easier to be a bit trickier, and only call
swpipl if changing the IPL.
 1.7  05-Jun-1997  cgd parens around macro arg (this is an old one)
 1.6  05-Jun-1997  cgd make sure that splnet(), splbio(), splimp(), spltty(), splclock(),
splstatclock(), and splhigh() all _raise_ the IPL. (splhigh() is _not_
the highest possible IPL; mcheck is...)
 1.5  06-Apr-1997  cgd clean up NetBSD RCS ID strings
 1.4  03-Dec-1996  cgd branches: 1.4.2;
kill siroff() and resturcture do_sir() to be cleaner and more correct.
 1.3  17-Nov-1996  cgd implement a (hack-ish) set of routines to do common chained-interrupt
handler management. It's nasty, but three slightly different copies of
the code is worse.
 1.2  09-Jul-1996  cgd various cleanup, move setsoft* and spl* into intr.h.
 1.1  12-Apr-1996  cgd the Alpha implementation of <machine/intr.h>
 1.4.2.3  22-Jul-1997  cgd sync nwscons branch with changes in -current as of July 21, 1997
 1.4.2.2  06-Jun-1997  cgd sync nwscons with trunk
 1.4.2.1  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.10.6.1  11-Nov-1997  mellon Pull rev 1.11 up from trunk (mjacob)
 1.21.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.21.2.6  23-Apr-2001  bouyer Sync with HEAD.
 1.21.2.5  21-Apr-2001  bouyer Sync with HEAD
 1.21.2.4  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.21.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.21.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.21.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.25.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.40.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.47.2.1  03-Aug-2001  lukem update to -current
 1.49.36.1  30-Mar-2005  tron Pull up revision 1.50 (requested by thorpej in ticket #76):
- Add a alpha_shared_intr_reset_strays() function that resets the
stray
interrupt counter for a given shared interrupt descriptor.
- When an interrupt is successfully handled, reset the strays counter,
thus preventing a "slow leak" from eventually shutting off the
interrupt
vector. Idea taken from pci_kn300.c (which was changed to use
the new
alpha_shared_intr_reset_strays() function).
 1.49.30.1  29-Apr-2005  kent sync with -current
 1.49.28.1  11-May-2005  riz Pull up revision 1.50 (requested by thorpej in ticket #1373):
- Add a alpha_shared_intr_reset_strays() function that resets the
stray
interrupt counter for a given shared interrupt descriptor.
- When an interrupt is successfully handled, reset the strays counter,
thus preventing a "slow leak" from eventually shutting off the
interrupt
vector. Idea taken from pci_kn300.c (which was changed to use
the new
alpha_shared_intr_reset_strays() function).
 1.49.22.2  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.49.22.1  01-Apr-2005  skrll Sync with HEAD.
 1.49.10.2  11-Mar-2002  thorpej Add IPL_VM. (Other ports call this IPL_IMP, and that will be changed
in short order.)
 1.49.10.1  10-Mar-2002  thorpej Adjustments for new mutex routines:
* Make all the IPL_* constants meaningful within a single number domain.
* Use new SI_* constants to number the soft interrupt queues, rather than
IPL_SOFT*.
* Add splraiseipl() for use by kern_mutex.c. Usage is e.g.
splraiseipl(IPL_BIO).
 1.49.2.2  27-Jul-2001  thorpej Rework the interrupt code, shaving some cycles off in the process.
Rather than an "iointr" routine that decomposes a vector into an
IRQ, we maintain a vector table directly, hooking up each "iointr"
routine at the correct vector. This also allows us to hook device
interrupts up to specific vectors (c.f. Jensen).

We can shave even more cycles off, here, and I will, but it requires
some changes to the alpha_shared_intr stuff.
 1.49.2.1  27-Jul-2001  thorpej file intr.h was added on branch nathanw_sa on 2001-07-27 00:25:20 +0000
 1.50.4.1  02-Nov-2005  yamt sync with head.
 1.50.2.7  17-Mar-2008  yamt sync with head.
 1.50.2.6  21-Jan-2008  yamt sync with head
 1.50.2.5  07-Dec-2007  yamt sync with head
 1.50.2.4  03-Sep-2007  yamt sync with head.
 1.50.2.3  26-Feb-2007  yamt sync with head.
 1.50.2.2  30-Dec-2006  yamt sync with head.
 1.50.2.1  21-Jun-2006  yamt sync with head.
 1.54.6.1  22-Apr-2006  simonb Sync with head.
 1.54.4.1  09-Sep-2006  rpaulo sync with head
 1.54.2.1  18-Feb-2006  yamt sync with head.
 1.55.16.3  21-Sep-2006  yamt rename splraiseipl argument to match with the rest of ports.
 1.55.16.2  18-Sep-2006  yamt correct a header.
 1.55.16.1  18-Sep-2006  yamt implement new api for alpha.
 1.55.14.2  01-Feb-2007  ad Header file cleanup.
 1.55.14.1  12-Jan-2007  ad Sync with head.
 1.59.14.1  22-May-2007  matt Update to HEAD.
 1.59.12.1  18-Apr-2007  thorpej Convert to the new atomic op API.
 1.59.8.1  11-Jul-2007  mjf Sync with head.
 1.59.6.5  03-Dec-2007  ad Sync with HEAD.
 1.59.6.4  03-Dec-2007  ad Sync with HEAD.
 1.59.6.3  18-Oct-2007  ad More interrupt changes; collapse the symbolic levels down to the ones
that we actually need (none, soft, vm, sched, high) but retain aliases
like IPL_BIO for now.
 1.59.6.2  18-Oct-2007  ad Interrupt stuff for alpha (but no fast softints yet).
 1.59.6.1  27-May-2007  ad Sync with head.
 1.60.10.3  23-Mar-2008  matt sync with HEAD
 1.60.10.2  09-Jan-2008  matt sync with HEAD
 1.60.10.1  06-Nov-2007  matt sync with HEAD
 1.60.8.1  09-Dec-2007  jmcneill Sync with HEAD.
 1.61.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.61.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.62.6.1  08-Jan-2008  bouyer Sync with HEAD
 1.63.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.63.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.63.2.1  24-Mar-2008  keiichi sync with head.
 1.64.2.1  18-May-2008  yamt sync with head.
 1.65.2.3  11-Aug-2010  yamt sync with head.
 1.65.2.2  11-Mar-2010  yamt sync with head
 1.65.2.1  16-May-2008  yamt sync with head.
 1.67.4.2  12-Jun-2011  rmind sync with head
 1.67.4.1  03-Jul-2010  rmind sync with head
 1.67.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.68.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.69.6.1  18-Feb-2012  mrg merge to -current.
 1.69.2.1  17-Apr-2012  yamt sync with head
 1.70.20.1  10-Aug-2014  tls Rebase.
 1.70.6.2  03-Dec-2017  jdolecek update from HEAD
 1.70.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.71.8.1  20-Mar-2017  pgoyette Sync with HEAD
 1.71.4.1  05-Feb-2017  skrll Sync with HEAD
 1.83.6.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed